我只是在玩PHP,有人可以向我解釋爲什麼下面的代碼打印出5566而不是6666?遞增產生意想不到的結果的字符串
$a = 5;
$b = $a;
echo $a++ . $b++;
echo "\n";
echo $a++ . $b++;
它回聲$ a然後加1到它嗎?爲什麼它不反映結果?
編輯: 的人觀看另一個簡單的例子:
$a = 5;
$b = $a++;
echo $a++ . $b;
主要生產65
我只是在玩PHP,有人可以向我解釋爲什麼下面的代碼打印出5566而不是6666?遞增產生意想不到的結果的字符串
$a = 5;
$b = $a;
echo $a++ . $b++;
echo "\n";
echo $a++ . $b++;
它回聲$ a然後加1到它嗎?爲什麼它不反映結果?
編輯: 的人觀看另一個簡單的例子:
$a = 5;
$b = $a++;
echo $a++ . $b;
主要生產65
應該呼應出
55
66
,因爲當你之後(後綴)將++
則增量在執行統計後完成。如果你想
66
66
然後做
$a = 5;
$b = $a;
echo ++$a . ++$b;
echo "\n";
echo $a++ . $b++;
它是那麼首先被使用的價值POST-INCREMENT OPERATOR
(即5),然後遞增所以你得到5566
echo $a++ . $b++; // echo 55 and then a becomes 6 , b becomes 6
echo "\n";
echo $a++ . $b++; // echo 66
在你的代碼中,IN首先回顯它返回$a
的值,然後它的增量類似於$ b。
這裏是一個$ ++解釋:
++$a Pre-increment Increments $a by one, then returns $a.
$a++ Post-increment Returns $a, then increments $a by one.
--$a Pre-decrement Decrements $a by one, then returns $a.
$a-- Post-decrement Returns $a, then decrements $a by one.
希望這將有助於你理解。
檢查下面的問題也:
Pre-incrementation vs. post-incrementation
What's the difference between ++$i and $i++ in PHP?
因爲$ A ++是後增量其返回值,然後遞增值。
嘗試:
echo ++$a . ++$b;
echo "\n";
echo $a++ . $b++;
它一樣
$a++;
$b++;
echo $a . $b;
echo "\n";
echo $a . $b;
$a++
$b++;
當你做postincrementation首先是返回的值,然後將其加1,這就是爲什麼你會得到這樣的結果。
如果你preincremenation首先值美元的加入則在返回的原因,你會看到66和77
echo ++$a . ++$b;
將打印66因爲你可能預期。
注意事項預先增加/減少速度比發佈速度快,這就是爲什麼如果你不需要在增加/減少之前先使用它顯示值。
Morover,如果你使用的參考
$a = 5;
$b = &$a;
echo $a++ . $b++;
將輸出56
和
$a = 5;
$b = &$a;
echo ++$a . ++$b;
將輸出77 :)
使用的預增量運算符 –
5566是預期的產出。 echo $ a ++首先打印$ a,然後遞增該值,而echo ++ $ a將首先增加$ a,然後打印它:) – Fallen