1

何らかの理由で、if の式が false を返すと、elseif をスキップして、else に直行するようです。何か奇妙なことを理解しようとしましたが、基本的なテストはまだ失敗しています。何を与える?デバッグ用に組み込みのphp 5.4を使用しており、問題がある場合はphpstormを使用していることを追加したいと思います。

$value = 2;

if ($value == 0) {
    xdebug_var_dump($value);
} elseif ($value == 1) {
    xdebug_var_dump($value);
} else {
    xdebug_var_dump($value);
}
4

2 に答える 2

2

期待されています。else if 条件が False と評価されるため、else ブロックにスキップします。

次の例で説明します。

<?php
$value = 2;

if($value == 0){
    echo "if block was executed";
} 
elseif($value == 1){ // 2 !== 1
    echo "elseif block 1 was executed";
} 
elseif($value == 2){
    echo "elseif block 2 was executed";
}
else{
    echo "else block was executed";
}
?>

これは以下を出力します:

elseif block 2 was executed

お役に立てれば。

于 2013-06-28T22:00:04.173 に答える
0

問題は、 yourelse ifも false であるため (1 != 2 であるため)、コードがelse.

$value = 1;

if ($value == 0) {
    xdebug_var_dump($value);
} else if ($value == 1) {
    // This should run:
    xdebug_var_dump($value);
} else {
    xdebug_var_dump($value);
}
于 2013-06-28T21:46:28.517 に答える