2011-10-30 16 views
0

我有2 while while if if else if語句,代碼工作,一切都很好,但只是一個小問題。哪裏會更快,哪些是正確的PHP而內部如果和整數?

就拿我的第一個例子,我宣佈在while循環它執行真實的陳述,

if ($levelChange > 0) { 
    while ($levelChange != 0) { 
     echo '<p>You gained a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange--; 
    } 
} 
elseif ($levelChange < 0) { 
    while ($levelChange != 0) { 
     echo '<p>You just lost a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange++; 
    } 
} 

我的第二個例子,我不這樣做,

if ($levelChange > 0) { 
    while ($levelChange) { 
     echo '<p>You gained a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange--; 
    } 
} 
elseif ($levelChange < 0) { 
    while ($levelChange) { 
     echo '<p>You just lost a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange++; 
    } 
} 

他們都工作,但哪一個更好用,爲什麼,如果有人知道哪個可以更快請賜教,

謝謝

回答

2

PHP將其參數轉換爲預期條件語句的布爾值。對於數字,每個非零值(!= 0)的計算結果爲true。 boolean type的PHP文檔具有包含不同類型轉換規則的表格。因此,if($x)相當於if($x == TRUE)。這兩種形式之間沒有任何(可測量的)性能差異。

+0

所以PHP中的零將永遠是錯誤的,任何正數或負數將是真實的? – cgweb87

+0

@ cgweb87:確實如此。任何非零數字都被認爲是真實的。 – knittl

+0

好酷現在我明白了,謝謝,我只是用我的個人喜好,然後再次感謝! – cgweb87

1

在這種情況下,我會說這是你的偏好。我可能會將比較結果設爲0,但這只是我的偏好,因爲對於閱讀您的代碼的人來說,它稍微更加冗長。任何一種方式的表現都不應該有太大的變化。

相關問題