Unterstreichen in PHP-Funktion

7

Was bedeutet es, wenn ein PHP-Funktionsname mit einem Unterstrich beginnt?

zum Beispiel: __construct()

Ich weiß, was das Konstrukt bedeutet, aber ich habe andere Stellen gesehen, an denen die Funktion mit einem Unterstrich oder einem doppelten Unterstrich beginnt, und ich bin mir der Bedeutung nicht sicher.

    
Stepppo 30.11.2009, 16:49
quelle

5 Antworten

16

Es bedeutet, dass PHP es implizit aufruft.

Es heißt eine "magische Methode"

Außerdem gibt es zwei Unterstriche, nicht einen.

Erfahren Sie hier mehr: PHP Magic Methoden

    
Jacob Relkin 30.11.2009, 16:53
quelle
5

In PHP beginnen Funktionen mit zwei Unterstrichen in der Regel besondere Bedeutungen. Aus dem Handbuch:

  

PHP reserviert alle Funktionsnamen   beginnend mit __ als magisch. Es ist   empfohlen, dass Sie nicht verwenden   Funktionsnamen mit __ in PHP außer   Sie wollen etwas dokumentiert Magie   Funktionalität.

Zum Beispiel ist __construct () eine spezielle Methode, die beim Initialisieren eines Objekts automatisch aufgerufen wird.

Se auch: Ссылка

    
Emre Yazici 30.11.2009 16:54
quelle
2

Es gibt auch eine gebräuchliche Benennung "Codierungsstil", die einen ersten Unterstrich verwendet, um anzugeben, dass Methoden oder Eigenschaften privat / geschützt sind. Ich denke, es ist ziemlich weit verbreitet.

    
Jay Cox 22.12.2014 00:07
quelle
1

Wie in anderen Antworten erwähnt, wird der doppelte Unterstrich für "magische" Methoden verwendet. Die Idee ist, dass der Benutzer niemals zwei Unterstriche für einen Methodennamen absichtlich verwenden würde, so dass das Risiko einer Kollision gering ist. Der Grund dafür ist, glaube ich, nicht, dass der einzelne Unterstrich eine beliebte Konvention für private Methoden in den schlechten (alten) Tagen war, bevor das "private" Schlüsselwort kam, um OO-Privatheit durchzusetzen.

>     
Ewan Todd 30.11.2009 17:01
quelle
0

Wenn Sie im Codeigniter eine Methode in einem Controller mit einem Unterstrich starten, weiß der Router, dass der Zugriff von der URL aus nicht möglich ist.

    
user199085 30.11.2009 17:14
quelle

Tags und Links