Bazı dillerde, yapabilirsiniz
$a = $b OR $c OR die("no value");
Yani, OR olacak kısa devre, gerçek bir değeri buluncaya kadar sadece soldan sağa doğru değerleri değerlendirilmesi. Ancak ek olarak, sadece true karşı değerlendirilmiştir the gerçek değeri verir.
Yukarıdaki örnekte, PHP, $a değeri olacaktır 1 if ya $a veya $b non-yanlış değerler, veya o olacak die.
Bu yüzden olarak kullanılmak üzere bir işlev first, yazıldı
$a = first($a, $b, die("no value"));
value ya $a ya da döndürür $b. Ancak, kısa devre değil - bu olacak zaman die.
Is there a short-circuit OR gerçek değerini döndürür PHP? B>
Edit: Some good answers for the example I gave, but I guess my example isn't exactly what I meant. Let me clarify.
$a = func1() OR func2() OR func3();
Bu fonksiyonların her bir really really intense hesaplama yapar, bu yüzden sadece en bir kez, her ifadeyi değerlendirmek istediğiniz yere. Ve gerçek bir değer dönmek için ilk kez, ben gerçek değeri $a saklanabilir istiyorum.
Çünkü olmaz kısa devre I, biz bir işlevi yazma ekarte düşünüyorum. Ve koşullu operatör cevabı iki kez ifade değerlendirmek olacaktır.