Стандарт кодирования PHP (PEAR, Zend и т. Д.) Определяет, что имена классов должны быть в верхнем CamelCase, в то время как методы и переменные (вероятно, ключи ассоциативных массивов) должны иметь более низкий формат camelCase. Логическое обоснование наличия классов в CamelCase и подчеркиваниях состоит в том, чтобы эмулировать пространства имен и создавать параллель с расположением файла, но в некоторой степени я нахожу, что там, где это хорошо работает для классов, это не так уж много для переменных.
Допустим, вам нужно сопоставить некоторые переменные со столбцами базы данных или элементами формы. MySQL не чувствителен к регистру (что я знаю), как и html, поэтому $ data ['userId'] во многом совпадает с $ data ['userid'] для них. ORM, такие как Doctrine, фактически игнорируют camelCasing для столбцов и просто извлекают их в нижнем регистре (или это просто mysql, возвращая их как таковые). Никто не хочет иметь дело с данными, которые могут или не могут выглядеть как $ data ['productQuantity'] или $ data ['productquantity'] в зависимости от того, где они были. $ data ['product_quantity'], с другой стороны, оставляет мало двусмысленности.
Так в чем же причина нынешней переменной схемы именования стандарта кодирования? Что мешает PHP изменить этот стандарт, говоря, что все переменные должны быть в нижнем регистре и отделены подчеркиванием (это работает, поскольку мы знаем, что имена классов должны начинаться с заглавной буквы)?
Edit:
Обратите внимание, что я не спрашиваю, какова цель стандарта. Я знаю, что они предназначены для разрешения в целом. Я спрашиваю, почему стандарт имя переменной в PHP таков, как есть. я понимаю причину схемы именования классов и преимущества ее применения (делает вашу библиотеку совместимой со многими автозагрузчиками и т. д.). Но я не понимаю, почему camelCasing имена переменных . Есть ли особая причина? Могу ли я оторваться от этого без последствий?