MySql – bigints, php и auto string / int casting flip-flopping

Вчера я задал вопрос о майнингах, на который был любезно ответил. Однако я наблюдал какое-то странное поведение и хотел бы понять, что происходит.

В моем php у меня есть массив, который я отправляю обратно в веб-клиентскую программу javascript, которая ее использует.

В php

sendBack = null; sendBack[0]['TimeStamp'] = $Time; // A bigint got from a mysql table milliseconds from 1970 sendBack[0]['Text'] = $Message; // A varchar message got back from mysql // I am guessing at this point you have worked out this is a text-chatroom thing going on sendBack[1]['TimeStamp'] = 0; // A zero indicates an admin issue - note its an int but a small one sendBack[1]['Text'] = $MessageAdmin; // And I pack it up to send back echo json_encode($sendBack); 

В js я распаковываю его для использования с:

  var json = eval('(' + data + ')'); 

Проблема в том, что индекс времени 0 в js обрабатывается как строка, но индекс 1 Timestamp обрабатывается как int.

С образовательной точки зрения кто-нибудь знает, что происходит?