Enregistrement de méthodes de classe en tant que rappels de hook

12

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 en tant que rappel en passant le tableau array("foo","bar") en tant que nom de la fonction.

Si j'ai une instance d'une classe dans $ foo et que je souhaite appeler la barre de méthode, je passe le tableau array($foo,'bar') .

Si je dois enregistrer une action dans la classe elle-même, cela fonctionnerait-il avec array($this,'bar') ?

    
posée Daniel Chatfield 15.06.2011 - 12:50

2 réponses

8
  

Si je dois enregistrer une action dans la classe elle-même, cela fonctionnerait-il avec array($this, 'bar') ?

Oui, ça marche. $this Docs fait référence à l'instance concrète nécessaire pour le callback . C'est exactement comme l'exemple de $foo que vous donnez. C'est juste que $this est un peu plus spécial, mais il représente fondamentalement la même chose et fonctionne parfaitement avec les rappels en PHP.

Supplémentaire:

  

Si j'ai une classe foo et une barre de méthode statique, je peux l'enregistrer en tant que rappel en passant le tableau array("foo","bar") en tant que nom de la fonction.

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 Rappels Documents . Peut-être pratique.

    
réponse donnée hakre 18.08.2011 - 01:36
1

Pour les méthodes statiques, vous pouvez également le faire:

['foo','bar'] 

lorsque l'élément suivant donne la constante 'bar' de la classe indéfinie:

:

foo::bar

exemple - lors de la spécification de $ control_callback pour wp_add_dashboard_widget

    
réponse donnée William Turrell 04.01.2016 - 16:44

Lire d'autres questions sur les étiquettes