Каково доминирующее соглашение по именованию переменных в PHP: верблюд или подчеркивание? [закрыто]


52

Похоже, консенсус заключается в том, что нужно следовать соглашению платформы, для которой они разрабатывают. Видеть:

Подчеркивание или верблюд?

Соглашения об именах: camelCase или underscore_case?

Тем не менее, PHP, кажется, строго не следует никаким внутренним соглашениям (никаких сюрпризов) даже для методов и функций (например mysqli::set_local_infile_default, PDOStatement::debugDumpParams); однако подчеркивания, кажется, доминируют в именах функций.

Однако я не смог найти следующее: каково доминирующее соглашение по именованию переменных в PHP?


1
Выберите один и придерживайтесь его. Неважно, какой из них вы выберете, пока вы придерживаетесь этого. То же самое с вкладками против пробелов.
Яннис

2
Я полностью согласен с мнением, распространенным в связанных дискуссиях: нужно следовать соглашению. Вот почему я ограничил объем вопроса PHP. Тем не менее, я начинаю задаваться вопросом, есть ли это доминирующее соглашение об именах в PHP.
Сбиченко

5
Нет, соглашения об именах - это еще одно из тех небольших несоответствий, которые делают PHP таким замечательным в работе. PSR - это единственное усилие, за которым, я думаю, стоит следовать, но ... оно полностью зависит от вас. Вопросы по теме: Существуют ли стандартные руководства по стилю для PHP? & Почему Bootstrap 3 заменяет camelCase на тире - это более читабельно? ,
Яннис

Этот вопрос может вам помочь: programmers.stackexchange.com/questions/149303/…
программист

Первая ссылка мертва, но вот архив: web.archive.org/web/20130417105957/http://stackoverflow.com/…
Дмитрий Зайцев,

Ответы:


51

В PHP нет определенного соглашения об именах, и они различаются по структуре:

Итак: используйте то, что использует ваш фреймворк, или создайте собственное соглашение об именах.

По крайней мере , для имен функций и методов класса, есть одна вещь , чтобы рассмотреть, но некоторые рамки от него избавиться: PHP чувствителен к регистру в этом случае , так aTonalFunction()и atonalFunction()оба обращения к одной и той же функции.


1
Ничто не противоречит твоему аргументу об именовании метонов, но это абсолютно не соглашение. Все современные фреймворки и библиотеки, такие как Zend Framework 2 , Doctrine 2 и Symfony 2, используют camelCase для имен методов.
Рудольф Готтесхайм

@RudolphGottesheim Хороший вопрос. Я отредактировал ответ соответственно.
Residuum

1
Интересно. Я пришел сюда, потому что я нашел соглашение о кодировании WordPress неловко. Теперь я вижу, по крайней мере, они имели в виду, что это было бы неловко
Кирби

14

Как программирование на PHP более десяти лет, я вижу переход от подчеркивания к camelCase. Особенно большие фреймворки, такие как Zend и Symfony, создаются на camelCase, даже когда они не запрещают подчеркивание, но все основные функции - camelCase.

Вы можете увидеть множество решений с подчеркиванием в старых системах, таких как старая ветка Typo3 (Typo3 Neo также изменен на camelCase).

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


1

Это зависит от программистов / разработчиков, а также от фреймворка или открытого исходного кода, над которым они работают. Например, в структуре Yii желательно использовать регистр верблюдов, тогда как в структуре Codeigniter большинство людей следуют за именами переменных с подчеркиванием. Одно можно сказать наверняка: независимо от того, какую платформу вы используете, имя переменной должно быть понятным и идентифицируемым.


0

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

Ситуация первая:

Вы присоединились к команде разработчиков и присоединились к текущему проекту, и вы заметили, что приведен пример переменной:

$theString = "This is a camelcase example";

Но у вас есть предпочтительный стиль:

$the_string = "This is not a camelcase example"; 

в такой ситуации было бы лучше придерживаться верблюдов.

Ситуация вторая:

Вы хотите начать проект в одиночку.

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

$theString = "This is a sample String"; 
$the_string = "This is another sample string within the same project"; 

Это может легко вызвать неожиданный результат. Просто имейте это в виду.


9
К вашему сведению, вы имеете в виду PascalCase - camelCase начинается со строчной буквы.
Джон Вайс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.