Яка домінуюча умова іменування змінних у PHP: верблюд чи підкреслення? [зачинено]


51

Здається, що консенсус полягає в тому, що слід дотримуватися конвенції платформи, для якої вони розробляються. Побачити:

Підкреслення чи верблюд?

Названня конвенцій: camelCase проти underscore_case?

Однак, схоже, PHP не суворо дотримується будь-якої конвенції внутрішньо (сюрпризів немає), навіть щодо методів та функцій (наприклад mysqli::set_local_infile_default, PDOStatement::debugDumpParams); однак підкреслення, здається, є домінуючим у назвах функцій.

Однак, що я не міг знайти, було це: яка домінуюча умова іменування змінних у PHP?


Виберіть один і дотримуйтесь його. Не має значення, яку саме ви виберете, доки дотримуєтесь цього. Те саме з вкладками та пробілами.
янніс

2
Я повністю погоджуюся з думкою, що переважає в пов'язаних дискусіях: слід слідувати конвенції. Тому я обмежив сферу питання PHP. Тим НЕ менше, я починаю задаватися питанням, чи є це домінуюче угоду про іменах в PHP.
sbichenko

5
Там немає, називання конвенцій - це ще одна з тих невеликих невідповідностей, які роблять PHP таким чудовим для роботи. PSR - це одне зусилля, яке, на мою думку, варто дотримуватися, але ... це повністю залежить від вас. Пов’язані запитання: Чи існують стандартні посібники стилів для PHP? & Чому Bootstrap 3 змінює camelCase на тире - чи це легше читати? .
янніс

Це питання може вам допомогти: programmers.stackexchange.com/questions/149303/…
програміст

1-е посилання мертве, але ось архів: web.archive.org/web/20130417105957/http://stackoverflow.com/…
Дмитро Зайцев

Відповіді:


50

У 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
FYI, ви маєте на увазі PascalCase - camelCase починається з малої літери.
Джон Вайс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.