0

この比較の間に違いはありますか?の違いは何ですか ! と === FALSE ?

if (!class_exists($class)) {
  require($class.'.php');
}

if (class_exists($class) === FALSE) {
  require($class.'.php');
}
4

2 に答える 2

1

この場合、いいえ。

ブール値と比較していることを明示的に示すのが良いプログラミング スタイルだと考える人もいます。個人的に...私はそれが好きではありませんが、より冗長な形式の方がより明白だと思います。演算子は、括弧と他の垂直方向の文字の間でつぶされたときに、最も目に見えるものではありません。

于 2012-05-22T04:11:33.473 に答える
-1

はい、両方とも異なるものです:

php は自動的に 0 を「false」、1 を「true」と見なすため、if 条件内で直接関数 response を使用すると、どちらも違いが生じます。

適切に実行された場合、int 番号を返す関数を検討してください。0 の場合もあります。ただし、関数がその要件に一致しなかった場合は、false が返されます。

したがって、この時点で値 0 を返す関数は成功です。イベントですが、結果はゼロです。これで if 条件のようにこれをチェックすると

$return = someFunction();

if($return){
  //code if ture
}

$return が 0 の場合、関数の実行が正しかったとしても if コードは実行されないため、その場合は次のようにチェックする必要があります

$return = someFunction();

if($return !== FALSE){
  //code if ture
}

=== と !== は、応答が戻り値の型と完全に一致することを確認するために使用されます。

if('0' === 0)

false を返しますが、

if('0' == 0)

trueを返します...

あなたの考えが今明確であることを願っています。

これをチェックしてください:

if('0' == 0){
    echo 'Hi, I will be in screen :)';
}

if('0' === 0){
    echo 'I will not be in screen :(';
}
于 2012-05-22T04:31:20.450 に答える