Форматирование декларации ассоциативного массива
Когда вы объявляете ассоциативный массив, как вы обрабатываете отступ элементов массива? Я видел много разных стилей (синтаксис 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 ответов
Лично я всегда хожу
$array = array(
'1' => '2',
3 => 4,
);
Отступ - один уровень табуляции (обычно 4 пробела, иногда 2). Я ненавижу чрезмерное пустое пространство. Это хорошо работает с вложенными массивами.
Я обычно использую этот вид отступа для объявлений массива:
function test()
{
$my_array = array(
'a' => 1,
'bcdef' => 2,
'gh' => array(
'glop',
'test'
),
'ijk' => 20,
);
}
Очень похоже на #1, но с этим отличием:
- финал
}
не отступает
Я никогда не ставлю много мест вокруг=>
'чтобы выровнять значения (как предложил ennuikiller): я считаю, что это действительно трудно читать, и часто мои глаза прыгают к неправильному значению ^^
Также обратите внимание, что я всегда ставлю,
в конце последнего объявления:
- это совершенно верно
- вам не нужно добавлять его, когда вы добавляете еще одну строку в массив
- когда вы добавляете одну строку в конец массива, вы модифицируете только одну строку: ту, которую вы добавляете (и, определенно, не ту, что была ранее, чтобы добавить ',', поскольку она уже есть); это помогает в случае различий и исправлений: меньше измененных строк, легче читать
Еще одна вещь: это то, что я делаю, когда работаю над проектом, в котором не указаны правила форматирования; иначе я стараюсь уважать их настолько, насколько это возможно (чтобы форматирование было согласованным между членами команды проекта)
Обычно я использую многострочный формат для ассоциативного массива, только если он нетривиален в смысле кодирования, т.е. что-то, на что полезно ссылаться при чтении кода. В противном случае (если это короткий массив), я помещу его в одну строку.
Если он длинный или нетривиальный, моя IDE (Eclipse в данный момент, пока я не могу выбрать подходящую альтернативу) обрабатывает большую часть форматирования для меня. В целом получается аналогично вашему первому примеру с одним уровнем отступа:
$array = array(
'Foo' => 'Bar',
'Baz' => 'Qux'
);
Я вырос, чтобы предпочесть это так. Один уровень отступа - действительно все, что нужно, и создает больше горизонтального пространства.
Очень полезно. Обсуждаются все хорошие стили кодирования PHP.
http://framework.zend.com/manual/1.12/en/coding-standard.coding-style.html
Помимо отступов, существуют также проблемы выравнивания значений, поскольку ключи, скорее всего, будут иметь неодинаковую длину (по крайней мере, некоторые из них). Так, например, как вы справляетесь с чем-то вроде этого:
'KeyOne' => 'Value1',
'KeyTwo' => 'Value2',
'KeyTwelve' => 'Value12',
В таких случаях я обычно выделяю жирную стрелку как минимум на 2 вкладки, чтобы получить что-то вроде этого:
'KeyOne' => 'Value1',
'KeyTwo' => 'Value2',
'KeyTwelve' => 'Value12',
Я иду с одним, который похож на #4:
$array = array('Foo' => 'Bar',
'Baz' => 'Qux'
'Moo' => 'Cow');
Я думаю, что этот метод облегчает видимость элементов в массиве, что особенно полезно, когда массив больше 10 элементов.