Geschützte Eigenschaften, denen ein Unterstrich vorangestellt ist

7

Wie:

%Vor%

Viele Leute scheinen das zu tun. Warum?

Ist das nicht inkonsistent (wie einige PHP-Funktionen)?)?

    
Alex 17.08.2012, 21:50
quelle

6 Antworten

9

Es kommt wirklich auf eine Sache an: persönliche Vorlieben.

Ich persönlich bin auch derjenige, der diese Namenskonvention verwendet. Das Vorfixieren von protected oder private mit einem Unterstrich, sei es eine Variable oder eine Funktion, lässt mich und jeden anderen Programmierer, mit dem ich regelmäßig arbeite, wissen, dass diese Variable global ist und außerhalb der aktuellen Klasse nicht zugänglich ist / Kontext.

Ein Beispiel, das hilft, den Anwendungsfall zu klären, wäre mit Klassenmethoden:

%Vor%

Wenn ich Code schreibe, der die Klasse Example benutzt, oder innerhalb der Klasse selbst arbeite, werde ich sofort erkennen, dass es keine öffentliche Funktion ist, weil _secondFunction() und damit _ beginnt außerhalb der Klasse nicht zugänglich; keine Notwendigkeit zu gehen und die tatsächliche Funktionsdeklaration zu finden und den Modifikator zu sehen. Auf der anderen Seite werde ich wissen, dass firstFunction() öffentlich ist, weil es nicht mit einem beginnt.

    
newfurniturey 17.08.2012, 21:54
quelle
10

Es ist eine alte Konvention aus der Zeit vor php5.

Php4 hatte nur öffentliche Sichtbarkeit, und irgendwie wollten die Leute wissen, ob eine Eigenschaft öffentlich oder privat sein soll (dasselbe gilt für Methoden). Das Unterstrichpräfix bezeichnete private Mitglieder oder Methoden, die nicht von außen verwendet werden sollten.

Obwohl dies streng genommen mit php5 nicht notwendig ist, wo Sie die Sichtbarkeit eines Klassenmitglieds explizit markieren können, ist diese Konvention immer noch üblich. Benutzer argumentieren, dass dies erleichtert Code zu erleichtern, wie Sie sofort sehen können, ob Sie diese Funktion auch von außen aufrufen können oder nicht. Dies hängt von der persönlichen Präferenz oder dem Codierungsstil des jeweiligen Projekts ab.

    
Maerlyn 17.08.2012 21:54
quelle
3

Der Unterstrich ist symbolisch und bedeutet, dass die Variable eine spezielle Eigenschaft besitzt (die vordefiniert ist und sich von Organisation zu Organisation oder von Programmierer zu Programmierer ändern kann). Traditionell bedeutet es, dass etwas nicht öffentlich ist. Gerade Funktionen werden manchmal wie folgt geschrieben:

%Vor%

Beachten Sie jedoch, dass PHP alle Funktionsnamen, die mit __ (zwei Unterstriche) beginnen, als magisch betrachtet und es empfiehlt sich, keine Funktionsnamen mit __ in PHP zu verwenden, es sei denn, Sie möchten eine dokumentierte magische Funktionalität haben.

    
raidenace 17.08.2012 22:00
quelle
1

Zum Vergleich: Python hat kein privates / öffentliches Design und verwendet Unterstriche, um die Unterscheidung zu kommunizieren. Siehe diesen Abschnitt von PEP 8:

Ссылка

Es ist also nicht unbedingt nur eine alte Vor-PHP5-Konvention - Leute könnten es absichtlich tun, aus dem gleichen Grund wie Python.

    
Caleb Paul 17.12.2013 18:54
quelle
-2

Ganz einfach, weil php das bereits mit Dingen wie _SESSION, _GET, _POST, _REQUEST macht, also ist es ein Muster, das leicht zu erkennen ist.

    
user1289347 17.08.2012 21:54
quelle
-2

Es ist definitiv nur persönliche Vorliebe. Sie könnten es tun, weil $ _GET und $ _SESSION in PHP schon fertig sind.

    
Jared Drake 17.08.2012 21:56
quelle