Benutzerdefinierte magische Methoden: Was ist "dokumentierte magische Funktionalität"?

8

Meine Frage ist ziemlich einfach, hier ist der Kontext:

Ссылка

  

Magische Methoden

     

Die Funktionsnamen __construct() , __destruct() , __call() ,    __callStatic() , __get() , __set() , __isset() , __unset() , __sleep() , __wakeup() , __toString (), __invoke (), __set_state () und __clone () sind magisch in PHP-Klassen. Sie können keine Funktionen mit diesen Namen haben   irgendeinen deiner Klassen, außer du möchtest die magische Funktionalität haben   mit ihnen.

     

PHP reserviert alle Funktionsnamen, die mit __ beginnen, als magisch. Es wird empfohlen, dass Sie keine Funktionsnamen mit __ in PHP verwenden, es sei denn, Sie möchten eine dokumentierte magische Funktionalität haben.

Ich verstehe, wofür diese Methoden sind und wie sie verwendet werden. Was ich nicht verstehe ist das:

  

... es sei denn, Sie möchten eine dokumentierte magische Funktionalität haben.

Was heißt das überhaupt? Gibt es tatsächliche Gründe dafür, benutzerdefinierte __magicMethods() zu erstellen?

    
Wesley Murch 14.03.2012, 11:35
quelle

2 Antworten

7

Ich denke, dass sie nur meinen, dass es besser ist, __ nicht als Anfangsnamen für Ihre Methoden zu verwenden, da PHP diese Konvention für seine magischen Methoden reserviert hat und wenn Sie diese für eine Methode verwenden, könnte es in der Zukunft und einige magische Funktionen haben. Zumindest habe ich das verstanden.

BEARBEITEN - um noch klarer zu sein: Nehmen wir an, Sie implementieren für Ihre eigene Geschäftslogik eine Methode namens __toNumber() . In einer zukünftigen Version von PHP wird entschieden, dass jedes Mal, wenn ein Objekt als Zahl verwendet wird (wenn Sie $result = 3 * $yourObject verwenden), die magische Methode __toNumber() aufgerufen wird ... Ihr Objekt wird einige "magische" Funktionen haben, selbst wenn du hast es nicht speziell hinzugefügt

    
Nicola Peluchetti 14.03.2012, 11:46
quelle
4

Es bedeutet, niemals Namen zu verwenden, die mit __ für Funktionen beginnen, es sei denn, Sie möchten, dass die magische Funktionalität im PHP-Handbuch dokumentiert wird.

    
meze 14.03.2012 11:45
quelle

Tags und Links