一部の言語では、あなたはそれが真の値が見つかるまで左から右にORは、短絡、値のみを評価しますですPHPに一番左の値を返す短絡ORがありますか?
$a = $b OR $c OR die("no value");
を行うことができます。また、true
ではなく、と評価された実際の値が返されます。
いずれか$a
又は$b
非偽の値である場合は、上記の例では、PHPで、$a
値1
であろうが、またはそれがあろうdie
。
そこで$a
又は$b
いずれかの値を返し
$a = first($a, $b, die("no value"));
として使用する機能first
を作成しました。しかし、それは短絡しません - それはいつもdie
です。
PHPに実際の値を返す短絡回路OR
はありますか?
編集: いくつかの良い私が与えた例の答えが、私は私の例は、私が何を意味するのか、正確ではないと思います。私を明確にしましょう。これらの機能のそれぞれが本当に強烈計算を行いますので、私はせいぜい一回、各式を評価したい
$a = func1() OR func2() OR func3();
。そして最初に真の値を返すために、私は$a
に実際の値を格納したいと思います。
私は、短絡しないので、関数の書き方を除外することができます。条件付き演算子の答えは各式を2回評価します。
これはもちろん、常に死ぬでしょう。関数を呼び出すときには、まずすべてのパラメータを評価する必要があります。評価中、「死ぬ」(「値なし」)と見なされます。 – Tom
変数について話していたとき、各式を2回評価するのは問題ありませんでした。あなたは最初にあなたの質問を綴る必要があり、初めて利用できなかった追加の情報を提示した後、答えを批判しないでください。関数を意味する場合は、初めて関数を使用してください。最善の答えはカオスの「いいえ」です –
コメント#2が間違っています。 phpは短絡評価を持っていますが、AFAIKは一番左の値を返しません。常にブール値を返します。 – apinstein