1. ホーム
  2. php

PHPには短絡判定がありますか?

2023-09-12 09:03:30

質問

次のようなコードがあるとします。

if (is_valid($string) && up_to_length($string) && file_exists($file)) 
{
    ......
}

もし is_valid($string) が返す false のように、PHPインタプリタが後の条件をチェックすることはありますか? up_to_length($string) ?

もしそうなら、なぜその必要がないのに余計な仕事をするのでしょうか?

どのように解決するのですか?

PHP のインタプリタは遅延処理(lazy" )を行っています。

もしそれを確認したいのであれば、これを試してみてください。

function saySomething()
{
    echo 'hi!';
    return true;
}

if (false && saySomething())
{
    echo 'statement evaluated to true';
}