【问题标题】:Formatting associative array declaration格式化关联数组声明
【发布时间】:2010-11-12 01:37:18
【问题描述】:

在声明关联数组时,如何处理数组元素的缩进?我见过许多不同的风格(PHP 语法,因为那是我最近的风格)。这是一件非常挑剔和琐碎的事情,如果您对更严肃的追求感兴趣,请继续前进。

1) 将元素缩进一级:

$array = array(
    'Foo' => 'Bar',
    'Baz' => 'Qux'
    );

2) 两级缩进元素:

$array = array(
        'Foo' => 'Bar',
        'Baz' => 'Qux'
        );

3) 缩进数组构造函数之外的元素,右大括号与构造函数的开头对齐:

$array = array(
            'Foo' => 'Bar',
            'Baz' => 'Qux'
        );

4) 缩进数组结构之外的元素,右大括号与左大括号对齐:

$array = array(
            'Foo' => 'Bar',
            'Baz' => 'Qux'
              );

就我个人而言,我喜欢#3——宽大的缩进清楚地表明我们处于代码中的断点(构造数组),并且右大括号在所有数组数据的左侧浮动一点清楚地表明此声明已完成。

【问题讨论】:

    标签: php arrays formatting coding-style associative-array


    【解决方案1】:

    一般来说,如果关联数组在编码意义上不重要,我只会对关联数组使用多行格式,即。在阅读代码时参考有用的东西。否则,(如果它是一个短数组),我会把它放在一行。

    如果它很长或很重要,我的 IDE(目前是 Eclipse,直到我能找到合适的替代方案)为我处理大部分格式。总的来说,它与您的第一个示例相似,只有一个缩进级别:

    $array = array(
        'Foo' => 'Bar',
        'Baz' => 'Qux'
        );
    

    我越来越喜欢这种方式。只需要一级缩进,并创造更多的水平空间。

    【讨论】:

      【解决方案2】:

      我喜欢:

      $array = array('Foo' => 'Bar',
                     'Baz' => 'Qux');
      

      【讨论】:

        【解决方案3】:

        除了缩进之外,还有对齐值的问题,因为键很可能具有不相等的长度(至少其中一些)。因此,例如,您如何处理这样的事情:

        'KeyOne' => 'Value1',
        'KeyTwo' => 'Value2',
        'KeyTwelve' => 'Value12',
        

        在这种情况下,我通常将粗箭头标记至少 2 个选项卡以给出如下内容:

        'KeyOne'       => 'Value1',
        'KeyTwo'       => 'Value2',
        'KeyTwelve'    => 'Value12',
        

        【讨论】:

          【解决方案4】:

          我个人总是去:

          $array = array(
            '1' => '2',
            3 => 4,
          );
          

          缩进是一个制表符级别(通常是 4 个空格,有时是 2 个)。我讨厌过多的空白。这适用于嵌套数组。

          【讨论】:

            【解决方案5】:

            我通常在数组声明中使用这种缩进:

            function test()
            {
                $my_array = array(
                    'a' => 1,
                    'bcdef' => 2,
                    'gh' => array(
                        'glop',
                        'test'
                    ),
                    'ijk' => 20,
                );
            }
            

            与 #1 非常相似,但有一点不同:

            • 最后的 } 没有缩进

            我从来没有在'=>'周围放置很多空格来对齐值(例如ennuikiller suggested):我发现这真的很难阅读,并且经常让我的眼睛跳到错误的值^^

            另外请注意,我总是在最后一个声明的末尾添加一个“,”:

            • 完全有效
            • 在数组中再添加一行时不必添加它
            • 当您在数组末尾添加一行时,您只修改了一行:您要添加的那一行(肯定不是之前的那一行,要添加“,”,因为它已经存在);这有助于差异和补丁:修改的行更少,更易于阅读

            还有一件事:当我在一个没有指定格式规则的项目上工作时,我会这样做;否则,我会尽量尊重这些(以便项目团队成员之间的形成是连贯的)

            【讨论】:

              【解决方案6】:

              我选择一个类似于 #4 的:

              $array = array('Foo' => 'Bar',
                             'Baz' => 'Qux'
                             'Moo' => 'Cow');
              

              我认为这种方法可以更轻松地查看数组中的项目,这在数组大于 10 个项目时特别有用。

              【讨论】:

                【解决方案7】:

                非常有帮助。讨论 PHP 的所有良好的编码风格
                http://framework.zend.com/manual/1.12/en/coding-standard.coding-style.html

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-07-18
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-07-15
                  • 2011-08-28
                  相关资源
                  最近更新 更多