Registrando métodos de classe como retornos de chamada de gancho

12

Não tenho certeza se fiz isso corretamente.

Pelo que entendi:

se eu tiver uma classe foo e uma barra de método estático, posso registrar isso como o retorno de chamada passando o array 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étodo, eu passo a matriz array($foo,'bar') .

Se eu precisar registrar uma ação dentro da própria classe, ela funcionará com array($this,'bar') ?

    
por Daniel Chatfield 15.06.2011 / 12:50

2 respostas

8
  

Se eu precisar registrar uma ação dentro da própria classe, ela funcionará com array($this, 'bar') ?

Sim, funciona. $this Documentos está se referindo à instância concreta necessária para o retorno de chamada . É exatamente como o exemplo $foo que você dá. É só que $this é um pouco mais especial, mas representa basicamente o mesmo e funciona perfeitamente com callbacks no PHP.

Adicional:

  

se eu tiver uma classe foo e uma barra de método estático, posso registrar isso como o retorno de chamada passando o array array("foo","bar") como o nome da função.

Sim, você pode fazer isso, para a função estática, você pode escrevê-la como uma string em vez da matriz também: foo::bar , veja Chamadas de retorno Documentos . Pode ser útil.

    
por hakre 18.08.2011 / 01:36
1

Para métodos estáticos, você também pode fazer isso:

['foo','bar'] 

quando o seguinte dá a constante de classe indefinida 'bar' :

foo::bar

exemplo - ao especificar o $ control_callback para wp_add_dashboard_widget

    
por William Turrell 04.01.2016 / 16:44