[英]Variable merging which doesn't make sense
考慮以下代碼:
$x = 1.4;
$i1 = 0.5;
$i2 = 0.4;
echo ($i1 + $i2 = $x); // Outputs 1.9
為什么是這樣? 我試過沒有結果的搜索這種變量設置。 變量$i2
被忽略了嗎? 為什么要使用這個over echo ($x + $i1);
? 它輸出相同的結果。
關鍵是它在一個陳述中做了兩件事。
它是以下的簡寫:
$i2 = $x;
echo ($i1 + $i2);
賦值發生在內聯,保存單獨的行。 不理想的樣式,但經常用於if()
, while()
和其他控制語句。
這將是$ i1 +任務。
賦值評估為$ x ($i2 = $x )
最終結果是echo 0.5 + 1.4.
甚至php也有運營商優先級http://php.net/manual/en/language.operators.precedence.php 。
=
在+
之前處理,這意味着發生了這種情況:
echo ($i1 + ($i2 = $x));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.