2014-12-03 108 views
-3

我有這樣的代碼如何讓將要改變一個變量的值後

$number = 1; 
echo $number; 

for ($i=0; $i < 10; $i++) { 
    $number++; 
} 

echo $number輸出111

如何才能得到最後的$number價值,當我改變它之前調用它?

+2

我的水晶球顯示,至少有一個\\將被'function'取代,你可能會對http://docs.php.net/language.variables.scope – VolkerK 2014-12-03 11:03:20

回答

1

一旦你輸出了一些東西給瀏覽器,就完成了。你以後不能再改變它。處理這個問題的唯一方法是在你找到最終值之前不要輸出變量;即在這個例子中你將echo語句移動到底部。

它通常被認爲是一個好主意,先運行所有的PHP代碼,並確定所有的變量,併爲了防止你現在有什麼樣的問題只然後開始輸出的東西到瀏覽器。

+0

感興趣,你的意思是我應該把循環放在一個函數中?並在調用變量之前運行它? – 2014-12-03 11:13:56

+0

不,我的意思是你永遠不應該回應其價值可能會改變的變量。首先做所有的計算,然後你迴應它。 – Erik 2014-12-03 11:15:21

0
$number = 1; 
echo 'before increment :'.$number; 

for ($i=0; $i < 10; $i++) { 
    $number++; 
} 
echo 'after increment :'.$number; 
0

試試這個辦法,現在你會得到預期的結果:

$number = 1; 
for ($i=0; $i < 10; $i++) { 
    $number++; 
} 

echo $number; 

原因,你已經把回聲$數量的增加,這在邏輯上是錯誤的之前:

相關問題