我有這樣的代碼如何讓將要改變一個變量的值後
$number = 1;
echo $number;
for ($i=0; $i < 10; $i++) {
$number++;
}
的echo $number
輸出1
不11
。
如何才能得到最後的$number
價值,當我改變它之前調用它?
我有這樣的代碼如何讓將要改變一個變量的值後
$number = 1;
echo $number;
for ($i=0; $i < 10; $i++) {
$number++;
}
的echo $number
輸出1
不11
。
如何才能得到最後的$number
價值,當我改變它之前調用它?
一旦你輸出了一些東西給瀏覽器,就完成了。你以後不能再改變它。處理這個問題的唯一方法是在你找到最終值之前不要輸出變量;即在這個例子中你將echo語句移動到底部。
它通常被認爲是一個好主意,先運行所有的PHP代碼,並確定所有的變量,併爲了防止你現在有什麼樣的問題只然後開始輸出的東西到瀏覽器。
感興趣,你的意思是我應該把循環放在一個函數中?並在調用變量之前運行它? – 2014-12-03 11:13:56
不,我的意思是你永遠不應該回應其價值可能會改變的變量。首先做所有的計算,然後你迴應它。 – Erik 2014-12-03 11:15:21
$number = 1;
echo 'before increment :'.$number;
for ($i=0; $i < 10; $i++) {
$number++;
}
echo 'after increment :'.$number;
試試這個辦法,現在你會得到預期的結果:
$number = 1;
for ($i=0; $i < 10; $i++) {
$number++;
}
echo $number;
原因,你已經把回聲$數量的增加,這在邏輯上是錯誤的之前:
我的水晶球顯示,至少有一個\\將被'function'取代,你可能會對http://docs.php.net/language.variables.scope – VolkerK 2014-12-03 11:03:20