【问题标题】:PHP: Comparison within Assignment StatementPHP:赋值语句中的比较
【发布时间】:2016-03-04 00:45:20
【问题描述】:

在优化行使用的永无止境的追求中,我有一个简短的问题,即在 PHP(以及其他语言中也可以使用赋值语句,但我正在开发一个 PHP 项目) .

在我的程序中,我有一个布尔变量,它由 if 语句总结的一些东西来切换。我想,等一下,if 语句将评估为布尔值,我可以在一行中使用该逻辑,而不是在 if 中包装一个单独的赋值语句。基本上我的问题是:

$myVar = ($a == $b);

相当于

if ($a == $b) { $myVar = true; }
else { $myVar = false; }

如您所见,这节省了我一行,因此它将极大地影响我的项目。 /讽刺

【问题讨论】:

  • 你可以看看ternary operator。但是不要仅仅通过保存代码行来使您的代码不可读。
  • 我会结束这个问题,因为三元运算符是常识。同时 - 我不明白代码行数经济的巨大影响。我还建议你,Daniel,阅读 PSR-2,它肯定会对你的 PHP 项目产生巨大的影响;)php-fig.org/psr/psr-2
  • 是的,我问的更多是出于好奇。显然,一个实际的 if 语句使它更具可读性。我不知道三元运算符。我在谷歌上搜索了“任务内部比较”之类的东西,但知道这个关键字会有所帮助。

标签: php boolean comparison variable-assignment


【解决方案1】:

您正在寻找的是三元运算。类似于

$var = ($a === $b ? true : false);
echo $var;

然后根据$a === $b 的评估结果设置$var 的值。

【讨论】:

    【解决方案2】:

    简答,$myVar = ($a == $b);if ($a == $b) { $myVar = true; } else { $myVar = false; } 相同。

    如果你想更短,你甚至可以删除(...),几乎没有$myVar = $a == $b;

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      相关资源
      最近更新 更多