9

声明关联数组时,如何处理数组元素的缩进?我见过许多不同的风格(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——宽泛的缩进清楚地表明我们处于代码中的断点(构造数组),并且右大括号在所有数组数据的左侧浮动一点可以清楚地表明这个声明完成了。

4

7 回答 7

10

就我个人而言,我总是去:

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

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

于 2009-07-19T06:01:37.457 回答
6

我通常将这种缩进用于数组的声明:

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

与#1 非常相似,但有以下区别:

  • 决赛}没有缩进

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

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

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

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

于 2009-07-19T09:58:27.590 回答
3

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

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

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

我已经越来越喜欢这种方式了。一级缩进实际上是所有需要的,并创建更多的水平空间。

于 2009-07-19T05:47:22.230 回答
1

我喜欢:

$array = array('Foo' => 'Bar',
               'Baz' => 'Qux');
于 2009-07-19T05:55:33.430 回答
1

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

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

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

于 2009-07-20T16:06:40.060 回答
1

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

于 2014-11-25T06:24:28.317 回答
0

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

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

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

'KeyOne'       => 'Value1',
'KeyTwo'       => 'Value2',
'KeyTwelve'    => 'Value12',
于 2009-07-19T06:00:11.033 回答