Jaka jest dominująca konwencja nazewnictwa dla zmiennych w PHP: camelcase lub podkreślenia? [Zamknięte]


51

Wydaje się, że konsensus jest zgodny z konwencją platformy, dla której opracowują. Widzieć:

Podkreślenie lub camelcase?

Konwencje nazewnictwa: camelCase kontra underscore_case?

Jednak PHP nie wydają się ściśle przestrzegać żadnych konwencji wewnętrznie (nie ma żadnych niespodzianek), nawet w przypadku metod i funkcji (np mysqli::set_local_infile_default, PDOStatement::debugDumpParams); jednak podkreślenia wydają się dominować w nazwach funkcji.

Jednak nie mogłem znaleźć tego: jaka jest dominująca konwencja nazewnictwa dla zmiennych w PHP?


Wybierz jeden i trzymaj się go. Bez względu na to, który wybierzesz, nie ma znaczenia. To samo dotyczy tabulatorów i spacji.
yannis

2
Zdecydowanie zgadzam się z opinią dominującą w powiązanych dyskusjach: należy postępować zgodnie z konwencją. Dlatego ograniczyłem zakres pytania do PHP. Jednak zaczynam się zastanawiać, czy nie jest dominującym konwencja nazewnictwa w PHP.
sbichenko

5
Nie ma, konwencje nazewnictwa to kolejna z tych małych niespójności, które sprawiają, że PHP jest tak cudowna w pracy. PSR to jedyny wysiłek, który moim zdaniem warto podjąć, ale ... to całkowicie zależy od ciebie. Powiązane pytania: Czy istnieją standardowe przewodniki po stylu dla PHP? I Dlaczego Bootstrap 3 zmienia camelCase na myślniki - czy jest bardziej czytelny? .
yannis 28.04.13


Pierwszy link jest martwy, ale tutaj jest archiwum: web.archive.org/web/20130417105957/http://stackoverflow.com/…
Dmitri Zaitsev

Odpowiedzi:


50

W PHP nie ma definitywnej konwencji nazewnictwa i różnią się one strukturą:

Więc: Używaj tego, co używa twój framework lub stwórz własną konwencję nazewnictwa.

Przynajmniej dla nazw funkcji i metod klasy, jest jedna rzecz do rozważenia, ale pewne ramy wyrzucić go: PHP jest wielkość liter ma znaczenie w tym przypadku , tak aTonalFunction()i atonalFunction()to zarówno połączeń do tej samej funkcji.


1
Nic wbrew argumentowi nazywania metond, ale absolutnie nie jest to konwencja. Wszystkie nowoczesne frameworki i biblioteki, takie jak Zend Framework 2 , Doctrine 2 i Symfony 2, używają camelCase do nazw metod.
Rudolph Gottesheim

@RudolphGottesheim Dobry punkt. Odpowiednio zredagowałem odpowiedź.
Residuum

1
Ciekawy. Przybyłem tutaj, ponieważ uznałem, że konwencja kodowania słów jest niezręczna. Teraz widzę przynajmniej, że mieli na myśli niezręcznie
Kirby

14

Jako, że koduję od ponad dziesięciu lat w PHP, widzę zmianę z podkreślenia na camelCase. Zwłaszcza większe frameworki, takie jak Zend i Symfony, budują się na camelCase również wtedy, gdy nie zabraniają podkreślenia, ale wszystkie podstawowe funkcje to camelCase.

W starszych systemach można zobaczyć wiele rozwiązań podkreślających, takich jak stara gałąź Typo3 (Typo3 Neo zmienił się również na camelCase).

Ale zdecydowanie nie ma ścisłej zasady, z której wszyscy korzystają, to właśnie widzę w ciągu ostatnich kilku lat.


1

Zależy to od programistów / programistów, a także od frameworku lub oprogramowania typu open source, nad którym pracują. Na przykład w frameworku Yii zaleca się stosowanie wielbłąda, podczas gdy w frameworku Codeigniter większość osób stosuje nazwy zmiennych z podkreślnikami. Jedno jest pewne, niezależnie od używanego frameworka, nazwa zmiennej musi być zrozumiała i możliwa do zidentyfikowania.


0

Osobiście może to przebiegać w obie strony. Niektórzy programiści wolą sposób pisania CamelCase, inni wolą podkreślenie ... Tak więc zadawanie takich pytań nie ma znaczenia, ponieważ każdy programista ma swoje własne zdanie ... Osobiście mam w zwyczaju robić jedno i drugie w zależności od sytuacji. ..

Sytuacja pierwsza:

Dołączyłeś do zespołu programistów i dołączyłeś do trwającego projektu, zauważasz, że podano przykładową zmienną:

$theString = "This is a camelcase example";

Ale masz preferowany styl:

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

w takiej sytuacji najlepiej trzymać się camelcase.

Sytuacja druga:

Chcesz rozpocząć projekt solo.

W takim przypadku ... Po prostu sprowadza się do tego, z czym czujesz się komfortowo, pamiętaj o złych praktykach w zakresie:

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

Może to z łatwością spowodować nieoczekiwany wynik. Pamiętaj o tym.


9
Do waszej informacji odnosi się PascalCase - camelCase zaczyna się od małej litery.
John Weisz,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.