Registro de métodos de clase como devoluciones de llamada de enlace

12

No estoy seguro de haber hecho esto correctamente.

Como yo lo entiendo:

si tengo una clase foo y una barra de método estática, puedo registrarlo como devolución de llamada al pasar la matriz array("foo","bar") como nombre de la función.

Si tengo una instancia de una clase en $ foo y quiero llamar a la barra de métodos, paso la matriz array($foo,'bar') .

Si necesito registrar una acción dentro de la clase, ¿funcionaría con array($this,'bar') ?

    
pregunta Daniel Chatfield 15.06.2011 - 12:50

2 respuestas

8
  

Si necesito registrar una acción dentro de la clase, ¿funcionaría con array($this, 'bar') ?

Sí, funciona. $this Docs se refiere a la instancia concreta necesaria para el devolución de llamada . Eso es exactamente como el ejemplo $foo que das. Es solo que $this es un poco más especial, pero representa básicamente lo mismo y funciona perfectamente con las devoluciones de llamada en PHP.

Additional:

  

si tengo una clase foo y una barra de método estática, puedo registrarlo como devolución de llamada al pasar la matriz array("foo","bar") como nombre de la función.

Sí, puede hacerlo. Para la función estática, también puede escribirla como una cadena en lugar de la matriz: foo::bar , consulte Callbacks Docs . Podría ser útil.

    
respondido por el hakre 18.08.2011 - 01:36
1

Para métodos estáticos también puedes hacer esto:

['foo','bar'] 

cuando lo siguiente proporciona Constante de clase indefinida 'barra' :

foo::bar

ejemplo: al especificar $ control_callback para wp_add_dashboard_widget

    
respondido por el William Turrell 04.01.2016 - 16:44

Lea otras preguntas en las etiquetas