1
QUESTIONPHP 7.0 VS 5.6 - 陣列密鑰php5.6 VS php7.0運行時對象差
爲什麼這個代碼產生不同的結果?
背景
我有以下代碼:
<?php
$assoc_array = [
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4
];
$index_array = ['a','b','c','d'];
$object = new \StdClass;
foreach($index_array as $item) {
$object->$assoc_array[$item] = "";
}
print_r($object);
當我在Ubuntu 17.4運行它,阿帕奇2.4.25,PHP 7.0,我得到這個:
Notice: Array to string conversion in /var/www/html/file.php on line 12
Notice: Array to string conversion in /var/www/html/file.php on line 12
Notice: Array to string conversion in /var/www/html/file.php on line 12
Notice: Array to string conversion in /var/www/html/file.php on line 12
stdClass Object (
[Array] => Array (
[a] =>
[b] =>
[c] =>
[d] =>
)
)
當我在相同的環境中運行它,但切換到PHP 5.6,我得到這個:
stdClass Object (
[1] =>
[2] =>
[3] =>
[4] =>
)
這不會破壞我的代碼,我只是真的掛斷了爲什麼它是不同的,並沒有開始我的研究。
注意:這是我在這裏感興趣的對象,而不是通知 - 兩者都有錯誤報告。