PHP中是否有像三元运算符的短版本的PHP?
在PHP中,三元运算符有一个简短的版本。
expr1 ? expr2 : expr3;
改变成
expr1 ? : expr3;
short版本返回expr1的结果为true,expr3的结果为false。 这允许很酷的代码可以根据自己的当前状态填充变量。 例如:
$employee = $employee ? : new Employee();
如果$employee == null
或由于任何其他原因求值为false,则上面的代码将创建一个new Employee();
否则, $employee
的值将被重新分配给自己。
我在Java中寻找类似的东西,但我找不到任何类似的三元运算符用例。 所以我想问是否有这样的function或类似的东西可以避免三元运算符的一个表达式,以减少重复。
不,那里没有。 (根据定义 ,三元运算需要三个操作数)
从PHP 5.3开始,可以省略三元运算符的中间部分。 表达式expr1?:expr3如果expr1的计算结果为TRUE则返回expr1,否则返回expr3。
资料来源: PHP手册
就像Java中的那个,但在Java中,您需要指定两个结果:
三元if-else运算符使用三个操作数,根据布尔断言的真实性或错误性产生一个值。 它的forms如下: –
boolean-exp ? value1 : value2
资料来源:
关于三元条件运算符的Java规范
官方Java文档
Java.net博客
还要记住,与Java和其他具有类似运算符的流行语言不同, ?:
在PHP中是左联的。 所以这:
打印horse
而不是train
(这是你在Java中所期望的)
资料来源:
http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/#operators