三元运算问题

WBOY
Freigeben: 2016-06-23 13:30:50
Original
852 Leute haben es durchsucht

$str = true?8888:true?100+100:100000000;echo '<br/>',$str;
Nach dem Login kopieren


为什么我这里结果输出的是200呢? 结合方向是左, 从第一三元运算符开始 为真 已经确定了 是8888 ,“:”后面的 不执行了的。难道不是这样?


回复讨论(解决方案)

$str = true?8888:(true?100+100:100000000); echo '<br/>',$str;
Nach dem Login kopieren


这样就对了

$c=1;$d=1;$str = true?8888:(true?$c++:$d++); echo $c,"<br/>";//1echo $d,"<br/>";//1echo '<br/>',$str;//8888
Nach dem Login kopieren

$str = (true?8888:true)?100+100:100000000; echo '<br/>',$str;//  200
Nach dem Login kopieren


如果不加括号系统是这样解释的。

23$str = (true?8888:true)?100+100:100000000;  echo '<br/>',$str;//  200
Nach dem Login kopieren


系统会这样解析?  三元运算符的 结合方向不是左吗?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage