PHP简化三元操作

Oba*_*bay 2 php ternary-operator

在PHP中,有没有办法简化这一点,而不使用if()

$foo = $bar!==0 ? $foo : '';
Run Code Online (Sandbox Code Playgroud)

我想知道如果$foo条件满足,是否有办法不重新分配给自己.我知道有一种方法可以在Javascript(使用&&,对吧?)中执行此操作,但是想知道是否有办法在PHP中执行此操作.

El *_*obo 9

在PHP 5.3中,三元运算符的缩写形式终于到了,所以你可以做到以下几点.

$foo = $bar ?: '';
Run Code Online (Sandbox Code Playgroud)

比较运算符部分- "自PHP 5.3,就可以离开了三元运算符的中间部分表达表达式1:如果表达式1的值为TRUE,而表达式3否则expr3返回值为表达式1.?."


Tim*_*per 5

Yup, you can use the logical and (&&) operator in PHP as well.

$bar === 0 && $foo = '';
Run Code Online (Sandbox Code Playgroud)

  • @Kerry和`if($ foo && $ bar)`中的相同.您可以将整个表达式放在那里,而不仅仅是变量或值,例如`if($ foo == 0 && $ bar ='baz')`.但它不必仅用在`if()`表达式中.`&&`是一个短路运算符,意味着如果前半部分是'假',它将不会评估下半部分.所以`$ foo =''`只会被查看,因此如果`$ bar === 0`就会被执行. (2认同)