我無法掌握下面列出的代碼中的評估邏輯。有誰知道爲什麼PHP在這種情況下評估$b
和$b = $b
的方式不同嗎?
我已閱讀了SO的一些問題,並檢查了PHP manual。這樣做我已經瞭解「PHP不(在一般情況下)指定表達式評估的順序爲」和「,該行爲可以在PHP版本之間或根據周圍代碼進行更改」 。我不覺得這適用於這種情況。還是呢?
作爲第一個承認這可能不是你的日常編碼問題,我仍然好奇。偶然想到做一些code golfing。
$a = [[00, 01, 02, 03],
[10, 11, 12, 13],
[20, 21, 22, 23],
[30, 31, 32, 33]];
$b = 2;
echo $a[$b][$b++], PHP_EOL;
$b = 2;
echo $a[$b=$b][$b++], PHP_EOL;
輸出 - PHP 5.5.14:
32
22
什麼PHP說的是,它不能保證像操作的數學秩序秩序。它可能在每個當前版本和系統中具有相同的順序,並且工作方式完全相同。他們表示,在更高版本中進行更改可能會改變結果,並且不能保證其始終如一。 – 2015-04-01 20:04:34