Funções para Manuseamento de Funções
PHP Manual

call_user_func

(PHP 4, PHP 5)

call_user_funcChama uma função de usuário dada pelo primeiro parâmetro

Descrição

mixed call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )

Chama uma dada função definida pelo usuário pelo parâmetro function.

Parâmetros

function

A função a ser chamada. Métodos de classe podem também ser invocados estaticamente usando esta função passando array($classname, $methodname) para este parâmetro.

parameter

Zero ou mais parâmetros a ser passado para a função.

Nota:

Note que os parâmetros para call_user_func() não são passado por referência.

<?php
function increment(&$var)
{
    
$var++;
}

$a 0;
call_user_func('increment'$a);
echo 
$a// 0

call_user_func_array('increment', array(&$a)); // Você pode também usar assim
echo $a// 1
?>

Valor Retornado

Retorna o resultado da função, ou FALSE em erro.

Exemplos

Exemplo #1 Exemplo da call_user_func()

<?php
function barber($type)
{
    echo 
"You wanted a $type haircut, no problem";
}
call_user_func('barber'"mushroom");
call_user_func('barber'"shave");
?>

Exemplo #2 Usando call_user_func() com nome do namespace

<?php

namespace Foobar;

class 
Foo {
    static public function 
test() {
        print 
"Hello world!\n";
    }
}

call_user_func(__NAMESPACE__ .'::Foo::test'); // A partir do PHP 5.3.0
// Hello world!
call_user_func(array(__NAMESPACE__ .'::Foo''test')); // A partir do PHP 5.3.0
// Hello world!

?>

Exemplo #3 Usando um método da classe

<?php

class myclass {
  static function 
say_hello()
  {
    echo 
"Hello!\n";
  }
}

$classname "myclass";

call_user_func(array($classname,'say_hello'));
call_user_func($classname .'::say_hello'); // A partir do 5.2.3

?>

Veja Também


Funções para Manuseamento de Funções
PHP Manual