"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como passar métodos de classe como retornos de chamada: entendendo mecanismos e técnicas

Como passar métodos de classe como retornos de chamada: entendendo mecanismos e técnicas

Publicado em 2024-11-06
Navegar:288

How to Pass Class Methods as Callbacks: Understanding Mechanisms and Techniques

Como passar métodos de classe como retornos de chamada

Plano de fundo

Em alguns cenários, pode ser necessário passar métodos de classe como retornos de chamada para outras funções para obter eficiência execução de tarefas específicas. Este artigo orienta você através dos vários mecanismos para conseguir isso.

Usando a sintaxe chamável

Para passar uma função como um retorno de chamada, você pode fornecer diretamente seu nome como uma string. No entanto, este método não é aplicável a métodos de classe.

Passando métodos de instância

Os métodos de instância de classe podem ser passados ​​como retornos de chamada usando uma matriz com o objeto como o primeiro elemento e o nome do método como o segundo. Essa abordagem funciona dentro e fora da mesma classe.

// Inside the same class
$this->processSomething([$this, 'myCallback']);
$this->processSomething([$this, 'myStaticCallback']);

// Outside the same class
$myObject->processSomething([new MyClass(), 'myCallback']);
$myObject->processSomething([new MyClass(), 'myStaticCallback']);

Passando métodos de classe estática

Métodos de classe estática não requerem uma instância de objeto. Eles podem ser passados ​​​​diretamente como um array contendo o nome da classe e o nome do método.

// Inside the same class
$this->processSomething([__CLASS__, 'myStaticCallback']);

// Outside the same class
$myObject->processSomething(['\Namespace\MyClass', 'myStaticCallback']);
$myObject->processSomething(['\Namespace\MyClass::myStaticCallback']); // PHP 5.2.3 
$myObject->processSomething([MyClass::class, 'myStaticCallback']); // PHP 5.5.0 

Opções adicionais

Além dos métodos mencionados, você também pode passar funções anônimas como retornos de chamada, mas isso pode exigir modificações na estrutura do seu código.

Declaração de lançamento Este artigo foi reimpresso em: 1729345515 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3