2016-12-09 51 views
-1

在下面的代碼中沒有語法錯誤顯示在PHP中,但如果嘗試使用out循環它會給我語法錯誤。爲什麼在下面的代碼中沒有分號錯誤在下面的代碼

while($i<5) 
    { 
    $abcd= 
    $i++;  
    } 

我想知道爲什麼PHP不給我一個語法錯誤。

+2

因爲您將$ i的值分配給$ abcd,然後增加$ i。這與編寫'while($ i <5){$ abcd = $ i; $ I ++; }'。編輯:哦,對不起,你的標題是一個非常不同的問題,而不是問題本身。 – Kalkran

+0

你的意思是爲什麼IDE沒有給出錯誤?因爲PHP只會在運行時發生錯誤。 – Timmetje

+0

如果這就是你所有的代碼,你應該得到一個**通知的未定義的索引*** –

回答

0
while($i<5) 
    { $abcd= 
    $i++; 
    } 

沒關係,這並不給出一個語法錯誤意味着你在循環之前已經difined $ I的。

,它不會給你一個eror,如果你刪除的循環

$abcd= 
$i++; 

是正確的。所以會出現在這兩種情況下沒有語法錯誤,我測試的代碼here

+1

這是否表明清楚https://3v4l.org/sZZK8? – PeeHaa

1

我想知道爲什麼PHP是不是給我一個語法錯誤

因爲沒有語法錯誤。換行符(但也是製表符和空格)與代碼語法無關。也沒有嚴格的要求在一行中進行賦值(儘管強烈建議但主要是爲了使代碼易於人類閱讀)。這一般適用於所有的代碼,所以如果你討厭你的工作:)你可以代替:

for ($i=0; $i<20; $i++) { 
    printf("$i\n"); 
} 

開始寫作:

for 
(
$i 
= 
0 
; 
$i 
< 
20 
; 
$i 
++ 
) 
{ 
printf 
(
"$i\n" 
) 
; 
} 

,它將所有的工作方式相同。

相關問題