DMi*_*Min 16 php if-statement ternary-operator
我已经看到建议说三元运算符不能嵌套.
我已经测试了下面的代码,它可以正常工作.我的问题是,我之前没有看过这样使用的三元运算符.所以,这是否可靠,因为它在一个if或者像这样的东西来了,以后咬我(不是在术语或可读性,但失败).
$rule1 = true;
$rule2 = false;
$rule3 = true;
$res = (($rule1 == true) && ($rule2 == false) && ($rule3 == true)) ? true : false;
if($res) {
echo "good";
} else {
echo "fail";
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 26
如果从三元运算符返回的结果只是"真"和"假",那么您甚至不需要运算符.你可以拥有:
$res = (($rule1 === true) && ($rule2 === false) && ($rule3 === true))
Run Code Online (Sandbox Code Playgroud)
但是,要回答你的问题,是的,多个条件的效果非常好.
这是完全合法的,可以正常工作,并且“好像可靠”,但是看起来很丑。
如果将每个三元语句放在括号内,嵌套也可以:
$res = ( $rule1 ? true : ( $rule2 ? true : false ) )
Run Code Online (Sandbox Code Playgroud)
手册中建议的唯一方法是嵌套而不带括号,如下所示:
$res = ( $rule1 ? true : $rule2 ? true : false )
Run Code Online (Sandbox Code Playgroud)