【问题标题】:Should I indent all assignment statements so that all "=" signs come in the same line?我应该缩进所有赋值语句,以便所有“=”符号都在同一行吗?
【发布时间】:2012-09-17 08:53:45
【问题描述】:

我的一些同事遵循这种缩进样式,他们在赋值语句中的每个 = 运算符之前和之后添加空格/制表符。即使块中只有一个赋值语句,他们甚至会这样做。我全力以赴编写可读、漂亮的代码。但是,真的需要在整个文件中进行这种对齐吗?

下面给出了演示这种缩进的示例代码。

    public function getCMSSectionData($args="1")
    {
        $sql                    =   "SELECT * FROM     med_cms_section WHERE $args";            
        $data                   =   $this->getdbcontents_sql($sql); 
        return $data;
    }

    public function insertCMSSection($dataArray)
    {

        $sendCount  =   100;

        $sql        =   "select * from med_email_pending order by priority desc limit ".$sendCount;
        $res        =   $this->db_query($sql);

        while($row = mysql_fetch_array($res))
        {
            $id         =   $row["id"];
            $to         =   $row["to"];
            $from       =   $row["from"];
            $subject    =   $row["subject"];
            $message    =   $row["message"];
            $priority   =   $row["priority"];
            $this->sendmail($to,$from,$subject,$message);
            $this->sendmail("user@example.com",$from,$subject,$message);
            $sql        =   "delete from med_email_pending where id=".$id;
            $this->db_query($sql);
        }
    }

这不是:-

$sql = "SELECT * FROM med_cms_section WHERE $args";         
$data = $this->getdbcontents_sql($sql); 

比这更好:-

$sql                    =   "SELECT * FROM med_cms_section WHERE $args";            
$data                   =   $this->getdbcontents_sql($sql); 

【问题讨论】:

  • 不,这不是必需的,至少在 PHP 中不是。过度使用也很丑。
  • 这是完全可选的。我有很多代码在= 之后没有缩进,还有一些代码实际上使它更清晰。
  • getCMSSectionData 中,缩进的距离似乎完全是任意的。所以你并不是在问,“请告诉我的同事,他们排列= 标志是错误的”,而是在问“请告诉我的同事,他们错误地插入任意数量的空格来推动他们的行长度超过 80 个字符”。谨防意外提出稻草人论点。

标签: language-agnostic coding-style indentation


【解决方案1】:

没有。它使代码更改更加困难(您必须手动对齐……除非您的 IDE 为您执行此操作),而且我认为它不会使代码更具可读性。不过,也许这是主观的。

【讨论】:

  • 再次主观地认为,我认为它偶尔使代码更具可读性。如果您希望能够查看两条或多条线的相同之处和不同之处,将它们排成一列确实会有所帮助。但这些情况很少见,当然不值得破坏你的其余代码。
【解决方案2】:

没有。至少有一个原因,这是一个可怕的想法。如果您需要添加一行,您可能需要重新格式化其他几行。当您想查看源代码管理中的修订之间进行了哪些更改时,这会使您的差异查看器感到困惑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    相关资源
    最近更新 更多