Çok hızlı bir test yaptım:
$a = array(
'id' => 152,
'another' => 'test',
'ananother' => 456,
);
$json = json_encode($a);
echo $json;
Yanılmıyorsam, bu tarif ettiğiniz gibi görünüyor?
Ve çıktı olarak alıyorum:
{"id":152,"another":"test","ananother":456}
Bu nedenle, bu durumda tamsayılar dizeye dönüştürülmemiştir.
Yine de, bu, kullandığımız PHP sürümüne bağlı olabilir: PHP sürümüne bağlı olarak, düzeltilen birkaç json_encode ile ilgili hata var ...
Bu test PHP 5.2.6 ile yapılmıştır; PHP 5.2.9 ve 5.3.0 ile aynı şeyi alıyorum; Yine de test etmek için başka bir 5.2.x sürümüm yok :-(
Hangi PHP sürümünü kullanıyorsunuz? Yoksa test durumunuz, yayınladığınız örnekten daha mı karmaşık?
Belki de http://bugs.php.net/ ile ilgili bir hata raporu ilgili olabilir? Örneğin, Hata # 40503: json_encode tamsayı dönüştürme PHP ile tutarsız mı?
Belki de Hata # 38680 ilginizi çekebilir , btw?