格式化关联数组声明

时间:2009-07-19 05:42:19

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

声明关联数组时,如何处理数组元素的缩进?我见过很多不同的样式(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 - 广泛的缩进清楚地表明我们处于代码中的断点(构造数组),并且使得右括号在所有数组数据的左侧浮动一点明确表示已完成此声明。

7 个答案:

答案 0 :(得分:10)

我个人总是去:

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

缩进是一个标签级别(通常为4个空格,有时为2个)。我厌恶过多的白色空间。这适用于嵌套数组。

答案 1 :(得分:6)

我通常对数组的声明使用这种缩进:

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

与#1非常相似,但有这种差异:

  • 最终}是缩进的

我从来没有在'=>'周围放置很多空格来对齐值(比如ennuikiller suggested):我觉得这很难读,而且常常让我的眼睛跳到错误的值^^

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

  • 完全有效
  • 当您向阵列添加一行时,您不必添加它
  • 当你在数组的末尾添加一行时,你修改了一行:你要添加的那行(并且肯定不是之前的那行,添加',',因为它已经存在);这有助于差异和补丁:修改的线条更少,更易于阅读

还有一件事:这是我在处理未指定格式规则的项目时所做的事情;否则,我会尽可能地尊重这些(因此,项目团队成员之间的格式化是一致的)

答案 2 :(得分:2)

通常我只会对关联数组使用多行格式,如果它在编码意义上是非平凡的,即。读取代码时引用有用的东西。否则,(如果它是一个短阵列),我会将它放在一行。

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

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

我已经逐渐喜欢这种方式了。实际上只需要一个级别的缩进,并创建更多的水平空间。

答案 3 :(得分:1)

我喜欢:

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

答案 4 :(得分:1)

除了缩进之外,还存在排列值的问题,因为键很可能具有不等长度(至少其中一些)。那么,例如,你如何处理这样的事情:

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

在这种情况下,我通常会在胖箭头上标出至少2个标签,以便给出类似的结果:

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

答案 5 :(得分:1)

我选择与#4相似的一个:

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

我认为这种方法可以让数组中项目更容易查看,这在数组大于10项时特别有用。

答案 6 :(得分:0)

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