Não tenho certeza se fiz isso corretamente.
Como eu entendo:
se eu tiver uma classe foo e uma barra de método estático, posso registrar isso como retorno de chamada, passando a matriz array("foo","bar")
como o nome da função.
Se eu tiver uma instância de uma classe em $ foo e quiser chamar a barra de métodos, passo a matriz array($foo,'bar')
.
Se eu precisar registrar uma ação dentro da própria classe, ela funcionaria array($this,'bar')
?
Respostas:
Sim, funciona.
$this
Docs está se referindo à instância concreta necessária para o retorno de chamada . É exatamente como o$foo
exemplo que você dá. É um$this
pouco mais especial, mas representa basicamente o mesmo e funciona perfeitamente com retornos de chamada em PHP.Adicional:
Sim, você pode fazê-lo. Para a função estática, você pode escrevê-la como uma string em vez da matriz:
foo::bar
consulte Documentos de retornos de chamada . Pode ser útil.fonte
Para métodos estáticos, você também pode fazer isso:
quando o seguinte fornece constante de classe indefinida 'bar' :
exemplo - ao especificar o $ control_callback para
wp_add_dashboard_widget
fonte