Je ne sais pas si je l'ai fait correctement.
Si je comprends bien:
si j'ai une classe foo et une barre de méthode statique, je peux l'enregistrer comme rappel en passant le tableau array("foo","bar")
comme nom de fonction.
Si j'ai une instance d'une classe dans $ foo et que je veux appeler la barre de méthode, je passe le tableau array($foo,'bar')
.
Si j'ai besoin d'enregistrer une action dans la classe elle-même, cela fonctionnerait-il array($this,'bar')
?
Réponses:
Oui cela fonctionne.
$this
Docs fait référence à l'instance concrète requise pour le rappel . C'est exactement comme l'$foo
exemple que vous donnez. C'est juste que$this
c'est un peu plus spécial, mais cela représente fondamentalement la même chose et cela fonctionne parfaitement avec les rappels en PHP.Additionnel:
Oui, vous pouvez le faire, pour la fonction statique, vous pouvez également l'écrire sous forme de chaîne au lieu du tableau :,
foo::bar
voir Documents de rappel . Ça pourrait être pratique.la source
Pour les méthodes statiques, vous pouvez également faire ceci:
lorsque ce qui suit donne une constante de classe non définie «bar» :
exemple - lors de la spécification de $ control_callback pour
wp_add_dashboard_widget
la source