ホームページ  >  記事  >  バックエンド開発  >  三項演算の問題

三項演算の問題

WBOY
WBOYオリジナル
2016-06-23 13:30:50853ブラウズ

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


ここで出力される結果が 200 なのはなぜですか?結合方向は左で、最初の三項演算子8888から真と判定され、「:」以降は実行されません。そうではありませんか?


ディスカッションへの返信(解決策)

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


そうです

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

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


これは、括弧なしでシステムが解釈される方法です。

うわー

システムはこのように分析してくれるのでしょうか?三項演算子の結合方向が左になっていませんか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。