Sorusu üzerine benim cevap yazdıktan sonra how to assign to multiple variables in a ternary operator Aslında ben yazdım kodu denedim:
true ? $w = 100 xor $r = 200 : $w = 300 xor $r = 400;
var_dump($w); var_dump($r);
(Bu teorik olduğunu, gereksiz rahatsız etmeyin.)
Şimdi, göre, PHP bu şekilde yapmak için bekliyoruz operator precedence olacaktır:
true ? $w = 100 xor $r = 200 : $w = 300 xor $r = 400 ;
(true) ? ( $w = 100 xor $r = 200 ) : ( $w = 300 xor $r = 400 );
(true) ? (($w = 100) xor ($r = 200)) : (($w = 300) xor ($r = 400));
Üçlü operatörün ilk bölümü değerlendirilir gibi, bu çıktıyı gerekir:
int 100
int 200
Ama onun yerine ben almak
int 100
int 400
Bu parçaları both parts of the ternary operator yürütülmesini gerektirir, çünkü bu, benim için çok garip.
O benim düşünce bazı aptal hatam ... varsayalım