Czy w PHP występuje zwarcie OR, które zwraca wartość najbardziej lewą?

W niektórych językach możesz to zrobić

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

Oznacza to, że OR spowoduje zwarcie, oceniając wartości tylko od lewej do prawej, aż znajdzie prawdziwą wartość. Ale w dodatku powraca rzeczywista wartość, która została oceniona, w przeciwieństwie do justtrue.

W powyższym przykładzie w PHP,$a będzie wartością1 jeśli tak, to$a lub$b są wartościami innymi niż fałszywe lub będądie.

Tak napisałem funkcjęfirst, do użycia jako

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

który zwracawartość albo$a lub$b. Ale nie powoduje zwarcia - zawszedie.

Czy istnieje zwarcieOR w PHP, który zwraca rzeczywistą wartość?

Edytować: Kilka dobrych odpowiedzi na podany przykład, ale myślę, że mój przykład nie jest dokładnie tym, co miałem na myśli. Pozwól mi wyjaśnić.

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

Gdzie każda z tych funkcji wykonujenaprawdę bardzo intensywny obliczenia, więc chcę oceniać każde wyrażenie najwyżej raz. Aby po raz pierwszy zwrócić prawdziwą wartość, chcę, aby rzeczywista wartość była przechowywana$a.

Myślę, że możemy wykluczyć zapisanie funkcji, ponieważ nie spowoduje ona zwarcia. A odpowiedź operatora warunkowego oceni każde wyrażenie dwukrotnie.

questionAnswers(6)

yourAnswerToTheQuestion