&$this in WordPress add_action-Rückruf

Lesezeit: 2 Minuten

Benutzeravatar von Yumecosmos
Yumekosmos

Ich fange gerade mit WordPress an und versuche, ein sehr einfaches Plugin mit OOP-Techniken zu schreiben. Ich habe dieses Tutorial befolgt: http://www.yaconiello.com/blog/how-to-write-wordpress-plugin/ . Bisher habe ich das Gefühl, dass ich das meiste verstehe, was vor sich geht, aber ich bin etwas verwirrt über Aussagen wie diese:

add_action('init', array(&$this, 'init')); 

Nachdem ich die Dokumentation gelesen habe add_action() von WordPress und PHP-Callables, entnehme ich, dass das zweite Argument eine Methode einer Klasseninstanz ist. Aber Ich verstehe nicht warum $this muss per Referenz übergeben werden.

Ich habe diesen Hinweis in den PHP-Dokumenten zu Callables gefunden, von denen ich vermute, dass sie etwas damit zu tun haben, aber es fällt mir immer noch schwer, mir den Unterschied vorzustellen:

Hinweis: In PHP 4 war es notwendig, eine Referenz zu verwenden, um einen Callback zu erstellen, der auf das eigentliche Objekt zeigt und nicht auf eine Kopie davon. Weitere Einzelheiten finden Sie unter Erläuterte Referenzen.

Wenn ich PHP 5 habe, bin ich sicher, wenn ich es verwende array($this,'init')?

Möglicherweise verwandt: add_action in WordPress mit OOP?

Ja – Sie können es sicher verwenden array($this, 'init');.

Was das eigentlich ist, ist ein “Callable” in PHP. Es wird mit aufgerufen call_user_func() oder call_user_func_array() (intern innerhalb der add_action Methode).

Die offizielle Beschreibung von PHP für diese Art von Callable:

Eine Methode eines instanziierten Objekts wird als Array übergeben, das ein Objekt am Index 0 und den Methodennamen am Index 1 enthält.

Sie können mehr über Callables lesen hier.

  • OK danke! Ich verstehe, dass es ein Callable ist. Eigentlich habe ich in meiner Frage auf diese Seite verlinkt;) Obwohl ich es als Rückruf bezeichnet habe … denke ich, ich gehe besser bearbeiten. Ich hatte nur eine akademische Neugier auf den Unterschied zwischen $this und &$this in diesem Zusammenhang. Wow, das war ein verwirrender Satz.

    – Yumekosmos

    14. Februar 2014 um 14:10 Uhr

1435410cookie-check&$this in WordPress add_action-Rückruf

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy