【问题标题】:php if/else shorthand failphp if/else 速记失败
【发布时间】:2016-05-15 07:20:02
【问题描述】:

普通表达式可以正常工作,而速记则不行。我哪里错了?

if (isset($var)) $value = $var;
elseif ($str !== 'string') $value = $str;
else $value = null;
// works just fine

$value = (isset($var)) ? $var : ($str !== 'string') ? $str : null;
// only returns $value = $str

谢谢

【问题讨论】:

  • 尝试将最后一部分包装在( ) 中,如下所示:$value = (isset($var)) ? $var : (($str !== 'string') ? $str : null);

标签: php if-statement shorthand-if


【解决方案1】:

尝试在第二个速记块 $value = (isset($var)) ? $var : (($str !== 'string') ? $str : null); 周围使用一组额外的括号

添加了这个旁注...

虽然尝试将代码压缩到一行很有趣,但通常最好将其写出来以便于阅读。您的代码行很紧凑,但需要一段时间才能消化,而...

if (isset($var)) {
   $value = $var;
}
else if ($str !== 'string') {
   $value = $str;
}
else {
   $value = null;
}

... 非常清楚发生了什么 - 几个月后,当您回顾您的代码时,您会感谢自己的 :)

【讨论】:

  • 呃!我没有意识到速记也可以嵌套,谢谢史蒂夫!
  • @Steve:很好的答案:)
  • 我附议一下,速记是可以的,但为了便于阅读,请避免使用它,尤其是在嵌套时
猜你喜欢
  • 2014-08-08
  • 2016-10-06
  • 2011-07-17
  • 2016-12-26
  • 2013-04-08
  • 1970-01-01
  • 2013-07-18
  • 2014-12-05
  • 2013-08-30
相关资源
最近更新 更多