if/elseif的行爲與堆棧if語句一樣嗎?PHP的 - 如果if/elseif行爲像堆棧if語句?
if($a == 2)
{
$a = 0;
$b = 2;
}
elseif($b == 2)
{
echo "Cool?";
}
if/elseif的行爲與堆棧if語句一樣嗎?PHP的 - 如果if/elseif行爲像堆棧if語句?
if($a == 2)
{
$a = 0;
$b = 2;
}
elseif($b == 2)
{
echo "Cool?";
}
基於else
在那裏,不,它不會工作。爲了使它符合你的要求,你需要刪除else,並使用2 if
聲明,例如;
// Set default values;
$a = 2;
$b = 0;
// Check $a
if($a == 2)
{
// Change values
$a = 0;
$ b = 2;
}
// Check $b, which is now 2 due to the condition matching above
if($b == 2)
{
echo "Cool?";
}
我相信你略微錯過了其他點。
它用於條件匹配,以確認多個可能性。
例如,讓我們想象一個抽獎,獎金分成幾個範圍;
數字01 - 10 = $ 5。 Numbers 11 - 20 = $ 10。 21 - 30 = 20美元。
你的代碼可能看起來像
<?php
$random_result = mt_rand(0, 30);
if ($random_number > 20) {
$amount = 20;
}
else if ($random_number > 10) {
$amount = 10;
}
else
{
$amount = 5;
}
echo 'The jackpot for today was $' . $amount . '!';
我不認爲我完全錯過了這一點。我只是覺得有趣的是,根據我的經驗,我不能根據我的經驗來決定if/elseif是否像堆疊if語句那樣行爲(例如,您已經說明我可以做以滿足我詢問的結果)。謝謝你的擴展答案。 –
不,如果$a
是2
當if
檢查時,elseif
將不進行檢查。您應該考慮整個if...elseif
部分的一個單個聲明,其中第一個評估爲true的條件會阻止其餘的被檢查。
如果elseif
是一個單獨的if
,那麼是的,它會輸出Cool?
。
但事實並非如此。
所以它不會。
非常感謝。 –
您的代碼的elseif
部分將不會執行,如果之前有任何if/elseif...
爲真。 if/elseif/...
塊按順序執行,一旦其中一個爲真,則不考慮其他塊。
感謝您的時間。 –
'爲什麼不試試自己?' –
因爲我很無聊,感覺就像在得到火燒形式人機交互詢問一個愚蠢的問題。 –
編輯你的問題。呃? ;) –