No estoy seguro de haberlo hecho correctamente.
Según lo entiendo:
si tengo una clase foo y una barra de método estático, puedo registrarla como devolución de llamada pasando la matriz array("foo","bar")
como el 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 array($this,'bar')
?
Respuestas:
Si, funciona.
$this
Docs se refiere a la instancia concreta necesaria para la devolución de llamada . Eso es exactamente como el$foo
ejemplo que das. Es solo que$this
es un poco más especial, pero representa básicamente lo mismo y funciona perfectamente con devoluciones de llamada en PHP.Adicional:
Sí, puede hacerlo, para la función estática, también puede escribirlo como una cadena en lugar de la matriz:
foo::bar
consulte Documentos de devolución de llamada . Podría ser útil.fuente
Para métodos estáticos también puede hacer esto:
cuando lo siguiente le da a la clase indefinida constante 'barra' :
ejemplo: al especificar $ control_callback para
wp_add_dashboard_widget
fuente