if / elseif是否像堆叠if语句一样?
if( $a == 2 )
{
$a = 0;
$b = 2;
}
elseif( $b == 2 )
{
echo "Cool?";
}
答案 0 :(得分:2)
基于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美元。 数字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 . '!';
答案 1 :(得分:1)
不,如果在$a
检查时2
为if
,则elseif
将不进行检查。您应该将整个if...elseif
部分视为单语句,其中评估为true的第一个条件会阻止其余部分被检查。
如果elseif
是单独的if
,则是,它会输出Cool?
。
但事实并非如此。
所以它赢了。
答案 2 :(得分:1)
如果代码中的任何elseif
为真,则代码的if/elseif...
部分将不会执行。 if/elseif/...
块按顺序执行,一旦其中一个为真,则不考虑其他块。