Gibt es ein Kurzschluss-ODER in PHP, das den Wert ganz links zurückgibt?

In einigen Sprachen können Sie tun

$a = $b OR $c OR die("no value");

Das heißt, der OR schließt kurz und wertet nur die Werte von links nach rechts aus, bis er einen wahren Wert findet. Aber darüber hinaus kehrt es zurückdas Istwert, der ausgewertet wurde, im Gegensatz zu nurtrue.

Im obigen Beispiel in PHP,$a wird der Wert sein1 wenn entweder$a oder$b sind nicht falsche Werte, oder es wirddie.

Also schrieb eine Funktionfirstverwendet werden als

$a = first($a, $b, die("no value"));

was das zurückgibtWert von entweder$a oder$b. Aber es schließt nicht kurz - es wird immerdie.

Liegt ein Kurzschluss vor?OR in PHP, die den tatsächlichen Wert zurückgibt?

Bearbeiten: Einige gute Antworten für das Beispiel, das ich gegeben habe, aber ich denke, mein Beispiel ist nicht genau das, was ich gemeint habe. Lassen Sie mich das klarstellen.

$a = func1() OR func2() OR func3();

Wo jede dieser Funktionen awirklich sehr, sehr intensiv Berechnung, also möchte ich jeden Ausdruck höchstens einmal auswerten. Und damit der erste einen wahren Wert zurückgibt, möchte ich, dass der tatsächliche Wert in gespeichert wird$a.

Ich denke, wir können das Schreiben einer Funktion ausschließen, weil es nicht kurzschließt. Und die bedingte Operatorantwort wertet jeden Ausdruck zweimal aus.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage