$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
如果不加括号系统是这样解释的。
该系统cs模式,三层架构。开发工具:vs2005+sqlserver2000本系统适合有一定基础的.net学习者参考学习。该系统处理了上一个系统中一些使用不方便的问题,和部分逻辑性问题,目前该系统已在公司大药店运行,情况良好!
23$str = (true?8888:true)?100+100:100000000; echo '<br/>',$str;// 200
系统会这样解析? 三元运算符的 结合方向不是左吗?









