Benim PHP kodu bazı çok garip davranışları var. Neredeyse PHP bir hata gibi görünüyor çünkü bu, aslında iyi bir SO soru olup olmadığını bilmiyorum. Benim bir projede bu sorunu vardı ve sorunu izole:
// json object that will be converted into an array
$json = '{"5":"88"}';
$jsonvar = (array) json_decode($json); // notice: Casting to an array
// Displaying the array:
var_dump($jsonvar);
// Testing if the key is there
var_dump(isset($jsonvar["5"]));
var_dump(isset($jsonvar[5]));
Bu kod aşağıdaki çıktılar:
array(1) {
["5"]=>
string(2) "88"
}
bool(false)
bool(false)
The big problem: bu testlerin her ikisi de bool (true) üretmek olmalıdır - Eğer düzenli php dizileri kullanarak aynı dizi oluşturursanız, bu görürsünüz budur:
// Let's create a similar PHP array in a regular manner:
$phparr = array("5" => "88");
// Displaying the array:
var_dump($phparr);
// Testing if the key is there
var_dump(isset($phparr["5"]));
var_dump(isset($phparr[5]));
Bunun çıkışı:
array(1) {
[5]=>
string(2) "88"
}
bool(true)
bool(true)
Yani bu gerçekten mantıklı değil. PHP / apache iki farklı kurulumlarında bu test ettik.
Sen kopyalayıp yapıştırmak bunu test etmek için dosyayı kendiniz bir php için kodu.
Bu bir nesneden bir dizi döküm ile ilgili bir şey olmalı.