【问题标题】:Variable position in comparision in PHPPHP中的比较变量位置
【发布时间】:2016-06-08 13:34:50
【问题描述】:

以下两种情况哪个更优化?

if ($var == 'value') {} 

if ('value' == $var) {}

很抱歉,如果这与另一个问题重复,但我无法通过谷歌搜索答案。

谢谢

[更新]

这叫做尤达条件,更多信息here

【问题讨论】:

  • 如果要优化,请使用三等号。
  • Yoda Conitions。效率没有区别。
  • @Salketer 这叫严格比较。
  • @Fluffeh:谢谢你给我这个故事

标签: php


【解决方案1】:

没有实际区别。第二个用于保护自己免受拼写错误if ($var = 'value') 但不是真正可读的。主要使用第一个,除非您太累了以至于打字时会漏掉字符。

如果你写代码

if ($var = 'val') echo $var; //Output will be "val"

如果你这样做了

if ('val' = $var) echo $var;

你会得到语法错误。

【讨论】:

    【解决方案2】:

    'value' == $var 称为尤达条件。而且一般不使用,因为可读性较差。

    在性能方面,我不确定,但我猜你的解释器会生成完全相同的操作码。

    【讨论】:

    【解决方案3】:

    最常用的一个是$var=="value",如果你想优化它而不是==,请使用===

    【讨论】:

      【解决方案4】:

      我建议使用

      $var == 'value'
      

      表格以增加可读性。我认为两者之间没有真正的性能差距,php.net 没有任何信息(或者我找不到它)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多