PHP: cast to (array) и return-type: array не то же самое?

У меня есть следующая проблема в PHP:

print_r() говорит, что это то же самое, gettype() говорит тот же тип, но последний вывод работает не для обоих случаев, хотя они должны быть одинаковыми!

Мне это очень странно.

код и вывод:

 $docdatau = get_object_vars(json_decode($docdata)); $docdatau2 = (array)json_decode($docdata); echo "1\n"; echo gettype($docdatau); echo "\n"; echo "--------------------------------------\n"; print_r($docdatau); echo "--------------------------------------\n"; echo "2\n"; echo gettype($docdatau2); echo "\n"; echo "--------------------------------------\n"; print_r($docdatau2); echo "out1\n"; echo "--------------------------------------\n"; print_r($docdatau[0]); echo "out2\n"; echo "--------------------------------------\n"; print_r($docdatau2[0]); 

Выход:

 1 array -------------------------------------- Array ( [0] => stdClass Object ( [produkt] => Produkt 2 [laufzeit] => 24 [addtext] => sdsd [provision] => 39 ) [1] => stdClass Object ( [produkt] => Produkt 1 [laufzeit] => [addtext] => [provision] => 0 ) ) -------------------------------------- 2 array -------------------------------------- Array ( [0] => stdClass Object ( [produkt] => Produkt 2 [laufzeit] => 24 [addtext] => sdsd [provision] => 39 ) [1] => stdClass Object ( [produkt] => Produkt 1 [laufzeit] => [addtext] => [provision] => 0 ) ) out1 -------------------------------------- stdClass Object ( [produkt] => Produkt 2 [laufzeit] => 24 [addtext] => sdsd [provision] => 39 ) out2 -------------------------------------- -------------------------------------- 

out2 и out2 должны давать одинаковые результаты, но нет.

Может быть, у кого-нибудь есть намек на меня?

Solutions Collecting From Web of "PHP: cast to (array) и return-type: array не то же самое?"

В нем есть несколько ошибок PHP:

То же самое происходит и здесь:

 $obj->{0} = "hello"; $arr = (array)$obj; echo $arr[0]; 

Это происходит потому, что «0» используется как строковый массив, тогда как $ arr [0] ищет ключ целочисленного массива. Он документирован в документации PHP просто путем указания : целочисленные свойства недоступны ( ссылка ).