因为您编写的内容与以下内容相同:
echo (true ? 1 : true) ? 2 : 3;
如您所知1被评估为
true。
您期望的是:
echo (true) ? 1 : (true ? 2 : 3);
因此,请始终使用大括号以避免此类混淆。
正如已经写过的,三元表达式在PHP中是关联的。这意味着首先将执行从 左边开始 的第一个,然后是第二个,依此类推。
欢迎分享,转载请注明来源:内存溢出
因为您编写的内容与以下内容相同:
echo (true ? 1 : true) ? 2 : 3;
如您所知1被评估为
true。
您期望的是:
echo (true) ? 1 : (true ? 2 : 3);
因此,请始终使用大括号以避免此类混淆。
正如已经写过的,三元表达式在PHP中是关联的。这意味着首先将执行从 左边开始 的第一个,然后是第二个,依此类推。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)