【问题标题】:Correct IF indentation with PHP [closed]使用 PHP 更正 IF 缩进 [关闭]
【发布时间】:2012-03-14 13:50:21
【问题描述】:

我没有找到任何编码风格指南来回答我的问题。我有一个带有嵌套大括号和几个逻辑运算符的简单 IF。我应该如何缩进:

if (
  !$var
  || (
    $this->var != $this->needed_var()
    && !$this->another_func()
    && !$this->another_func_two()
  )
) {
  // My code...
}

我觉得它很丑...有什么帮助吗?

【问题讨论】:

标签: php if-statement indentation logical-operators


【解决方案1】:

为了便于阅读,我会将较长语句的结果存储到一个有意义的变量中。

$is_not_needed = ($this->var != $this->needed_var() && !$this->another_func() && !$this->another_func_two()); 

if( !$var || $is_not_needed ) 
{
    // your code here
}

【讨论】:

    【解决方案2】:

    我建议Zend Framework Coding Standards。它们在“控制语句”下涵盖了这种特殊情况,如下所示:

    if (($a == $b)
        && ($b == $c)
        || (Foo::CONST == $d)
    ) {
        $a = $d;
    }
    

    【讨论】:

    • 这正是我想要的。谢谢!
    【解决方案3】:

    嗯,没有通用的编码风格规则,最重要的是你的格式是一致的,你的代码是可读的。我会这样格式化,但这只是我的编码风格!

    if (!$var || ($this->var != $this->needed_var() &&
                  !$this->another_func() &&
                  !$this->another_func_two())){
      // My code...
    }
    

    在任何情况下,您都可以查看pear 了解编码标准

    【讨论】:

      【解决方案4】:

      与 PHP 没有直接关系,但 QT 框架的编码风格和约定文档写得非常好,并且有很多连贯的意义。

      您可以在这里查看:http://wiki.qt-project.org/Coding_Style

      【讨论】:

      • 我停止阅读“空格,而不是标签!”白痴。
      • “在类型和‘’或‘&’之间总是使用一个空格,但在‘’或‘&’和变量名之间没有空格。” FFS。我希望人们停止传播这样的有害垃圾>.
      • 我猜这来自跨平台..?可惜你停止阅读了!其他的真的很不错。
      • 我确实一直在阅读。其余的基本上就是我所做的,除了 switch/case 位。跨平台跟它有什么关系?
      • 制表符实际代表多少空格的不同定义。我想使用空格(尽管我个人没有)可以解决这个问题。
      【解决方案5】:

      我更喜欢WordPress Coding Standards。尽管这些标准中的大多数是相同的。

      【讨论】:

      • 我没有看到任何与if 和几个逻辑运算符相关的内容。
      【解决方案6】:
      $var_is_ok    = ($this->var != $this->needed_var());
      $another_req  = ($this->another_func());
      $another_req2 = ($this->another_func_two());
      
      if (!$var || ($var_is_ok && !$another_req && !another_req2) )
      {
        // My code...
      }
      

      【讨论】:

        【解决方案7】:

        当您有一个没有明确缩进方式的条件时,条件太长。程序员将无法快速理解它的现状。

        重构它。

        【讨论】:

          猜你喜欢
          • 2021-07-16
          • 2010-11-12
          • 1970-01-01
          • 2015-12-07
          • 1970-01-01
          • 1970-01-01
          • 2010-10-07
          • 2013-12-28
          • 1970-01-01
          相关资源
          最近更新 更多