【发布时间】:2015-01-08 23:24:35
【问题描述】:
在 PHP 中,有没有办法在不使用 if() 的情况下进一步简化这一点?
$foo = $bar!==0 ? $foo : '';
我想知道如果条件满足,是否有办法不将$foo 重新分配给自己。我知道在 Javascript 中有一种方法可以做到这一点(使用 &&,对吗?),但想知道是否有一种方法可以在 PHP 中做到这一点。
【问题讨论】:
-
你为什么想要更进一步?您是否希望每次遇到这样的事情时都要维护您的代码的可怜人搜索手册?我不会。
-
投了赞成票,一月好点
-
@Jan 也对该评论表示赞同。
if ($bar == 0) $foo = '';和三元一样简单,不涉及自赋值,实际上更具可读性。 -
不同意;三元运算符很容易阅读。 paxdiablo 给出的示例与上面的三元运算符不同;如果 $bar 不等于 0,则不会为 $foo 分配任何内容,并且它将是一个未定义的变量。要做到这一点,您需要在其中有一个 else 子句并分配其他内容 - 更长,可读性更差。
-
@El 再看问题,如果
$bar不是0,则$foo被赋值为$foo的值(即保持不变),所以该变量必须已经存在。
标签: php ternary-operator