2011-08-30 23 views
0

裏面一個for循環,我想基於循環是對的什麼迭代設置一個變量:簡單的PHP問題:使用一個IF語句中FOR循環

<?php 
for ($k = 0; $k < 3; $k++){ 
    if ($k = 0) : $var = 'zero';  
    elseif ($k = 1) : $var = 'one'; 
    else : $var = 'two'; 
    endif; 
?> 

This is iteration <?php echo $var; ?>. 

<?php }; ?> 

但它繼續循環永遠直到我的瀏覽器凍結...發生了什麼?任何幫助將不勝感激!

回答

6

您基本上將$ k設置爲0和1.比較值使用'=='。 改爲嘗試此操作。

<?php 
for($k = 0; $k < 3; $k++){ 
    if ($k == 0) 
     $var = 'zero';  
    elseif ($k == 1) 
     $var = 'one'; 
    else 
     $var = 'two'; 
?> 
This is iteration <?php echo $var; ?>. 

<?php } ?> 
+0

杜!謝謝! – christina

1
if ($k = 0) 

您在這裏將$k設置爲0。使用==來比較值,或使用===來比較值及其類型。

+0

哦男人。對。謝謝! – christina

+0

做'0 == $ k'是個好習慣。一旦你養成這種習慣,你將永遠避免這個問題! –

1

如果語句,您使用=操作符,其分配...
然後$ k將始終爲0,循環將永遠不會結束。 在if語句中替換= to ==。所以它會比較而不是分配$ k一個值。

更清楚example.-

if ($k = 1) // It will return 1, because you are assigning $k, 1. 

if ($k == 1) // It will return a boolean **true** if $k equals 1, **false** otherwise. 
1
for ($k = 0; $k < 3; $k++){ 
    if($k == 0){ 
     $var = 'zero'; 
    }elseif($k == 1){ 
     $var = 'one'; 
    }else{ 
     $var = 'two'; 
    } 
} 
echo $var;