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