<?php
// Exemplo de função de retorno
function minha_funcao_retorno() {
echo 'Olá mundo!', PHP_EOL;
}
// Exemplo de método de retorno
class MinhaClasse {
static function meuMetodoRetorno() {
echo 'Olá Mundo!', PHP_EOL;
}
}
// Tipo 1: Função de Retorno Simples
call_user_func('minha_funcao_retorno');
// Tipo 2: Chamada a métodos estáticos
call_user_func(array('MinhaClasse', 'meuMetodoRetorno'));
// Tipo 3: Chamada a métodos de objetos
$obj = new MinhaClasse();
call_user_func(array($obj, 'meuMetodoRetorno'));
// Tipo 4: Chamada a métodos estáticos
call_user_func('MinhaClasse::meuMetodoRetorno');
// Tipo 5: Chamada relativa a métodos estáticos
class A {
public static function quem() {
echo "A\n", PHP_EOL;
}
}
class B extends A {
public static function quem() {
echo "B\n", PHP_EOL;
}
}
call_user_func(array('B', 'parent::quem')); // A, descontinuado a partir do PHP 8.2.0
// Type 6: Objetos que implementam __invoke podem ser utilizados como chamáveis
class C {
public function __invoke($nome) {
echo 'Olá ', $nome, PHP_EOL;
}
}
$c = new C();
call_user_func($c, 'PHP!');
?>