Нет запятой после последнего элемента в массиве?
Я заметил, что после последнего элемента некоторые массивы не имеют запятой. У меня есть массив:
$first_name = array(
'name' => 'first_name',
'id' => 'first_name',
'maxlength' => '20',
'class' => 'text',
'placeholder' => 'First name',
);
У меня есть запятая, но нет ошибок php. Должен ли я хранить или удалять запятую?
Ответы
Ответ 1
Это предпочтение стиля, как упоминалось в другом месте, однако я бы посоветовал утверждать себя против добавления этой конечной запятой в PHP, поскольку он синтаксически недействителен на некоторых языках. В частности, я думаю об использовании Internet Explorer этих типов конечных запятых в Javascript, которые, как известно, являются трудными ошибками для поиска, когда скрипты терпят неудачу в IE, а затем следуют везде. Он также нарушит достоверность JSON и недействителен в списке SQL SELECT
, среди других потенциальных проблем.
Опять же, это вопрос предпочтения, но может вызвать проблемы в других областях.
Ответ 2
Оба являются синтаксически правильными на нескольких языках. Последний элемент игнорируется, если он оставлен пустым. Это красивое маленькое пасхальное яйцо, встроенное в языки, так что вам не нужно добавлять в ,
, прежде чем приступать к модификации массива, если вам нужно добавить еще несколько значений.
Ответ 3
Звучит как предпочтение стиля, если оба являются синтаксически правильными
Ответ 4
Запятая после последнего элемента может не работать на каждом языке. Однако он делает различия в очистке систем управления версиями для поддерживаемых языков.
/* From */
$a = array(
'element_w',
'element_x',
);
/* To */
$a = array(
'element_w',
'element_x',
'element_y', /* Only this line will show in version control. */
);
/* From */
$a = array(
'element_w',
'element_x'
);
/* To */
$a = array(
'element_w',
'element_x', /* These two lines */
'element_y' /* will show in version control. */
);