PHP - if / elseif是否像堆叠if语句一样?

时间:2014-01-27 05:27:05

标签: php if-statement

if / elseif是否像堆叠if语句一样?

if( $a == 2 )
{
   $a = 0;
   $b = 2;
}
elseif( $b == 2 )
{
   echo "Cool?";
}

3 个答案:

答案 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检查时2if,则elseif进行检查。您应该将整个if...elseif部分视为语句,其中评估为true的第一个条件会阻止其余部分被检查。

如果elseif是单独的if,则是,它会输出Cool?

但事实并非如此。

所以它赢了。

答案 2 :(得分:1)

如果代码中的任何elseif为真,则代码的if/elseif...部分将不会执行。 if/elseif/...块按顺序执行,一旦其中一个为真,则不考虑其他块。