Почему примеры массивов PHP оставляют запятую?

Я видел примеры, подобные следующим:

$data = array(
'username' => $user->getUsername(),
'userpass' => $user->getPassword(),
'email' => $user->getEmail(),
);

Однако на практике я всегда не оставил запятую. Я делаю что-то не так или это просто «другой» способ сделать это? Если бы я использовал фреймворк, разве запятая не повлияла бы отрицательно на генерацию кода? Я видел использование конечных запятых в объявлениях массивов на других языках (Java, C ++), поэтому я предполагаю, что причины оставить запятые не являются специфическими для PHP, но это пробудило во мне интерес.

67

Решение

Почему примеры массивов PHP оставляют запятую?

Потому что они могут. 🙂 PHP Ручной ввод для массива состояния:

Наличие последней запятой после последней определенной записи массива, хотя и необычно, является допустимым синтаксисом.

Серьезно, это сделано исключительно для удобства, поэтому вы можете легко добавить другой элемент в массив, не добавляя запятую в конце последней записи.

Говоря о других языках: будьте осторожны с этим в JavaScript. Firefox будет мягко терпеть запятые; Internet Explorer, по праву, выдаст ошибку.

88

Другие решения

Это хорошая практика при определении массива в несколько строк. Это также поощряется Стандарты кодирования ZendFramework:

При использовании этого последнего объявления мы
рекомендуем использовать запятую для
последний элемент в массиве; этот
сводит к минимуму влияние добавления новых
элементы в последовательных строках, и помогает
чтобы избежать ошибок синтаксического анализа из-за
пропущенная запятая.

20

При работе с системой контроля версий (git) я заметил, что если мы добавим 1 вещь в массив и у нас не будет запятой, то будет выглядеть, как будто мы изменили 2 строки, потому что запятую нужно было добавить к предыдущей строке. Я считаю, что это выглядит плохо и может вводить в заблуждение при просмотре изменений файла, и по этой причине я думаю, что запятая — это хорошая вещь.

18

Потому что он держит записи единообразно.

Если вам приходилось менять порядок, добавлять или удалять записи, вы знаете, что оставлять запятую очень удобно.

Если последний элемент не может иметь запятую, вам придется поддерживать последнюю запятую, изменяя записи. Это бессмысленное упражнение и пустая трата времени и пальцев, потому что намерение поменять или изменить записи уже выполнено.

Позволяя добавить запятую на последнем элементе, это освобождает программиста от необходимости прибегать к этим раздражающим и бесплодным деталям.

7

Я не могу говорить за других людей, но я обычно оставляю запятую в моем коде. Я делаю это потому, что если / когда я позже добавлю в массив, мне не нужно беспокоиться о том, чтобы пропустить запятую из-за забвения добавления запятой в предыдущую строку.

4

Я чувствую, что даже если это разрешено, это плохая практика, это все равно, что пропустить последнюю точку с запятой в ваших функциях и циклах.

4

Я всегда делаю запятую, потому что это помогает избежать синтаксических ошибок при добавлении новых элементов массива … это просто хорошая практика.

3

Причина в фиксации изменений.

Если вам нужно добавить запятую при добавлении нового элемента. Вы меняете 1 строку и добавляете 1 строку. (- ++)

При добавлении нового элемента, когда запятая уже находится в строке выше. Есть только 1 добавленная строка, и никаких измененных. (+)

1