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/...
块按顺序执行,一旦其中一个为真,则不考虑其他块。
感谢您的时间。 –
'为什么不试试自己?' –
因为我很无聊,感觉就像在得到火烧形式人机交互询问一个愚蠢的问题。 –
编辑你的问题。呃? ;) –