Manual do PHP
Anterior | Capítulo 12. Funções | Próxima

# Funções variáveis

O PHP suporta o conceito de funções variáveis. Isto significa que se um nome de variável tem parênteses no final dela, o PHP procurará uma função com o mesmo nome, qualquer que seja a avaliação da variável, e tentará executá-la. Entre outras coisas, isto pode ser usado para implementar callbacks, tabelas de função e assim por diante.

Funções variáveis não funcionam com construtores de linguagem como echo(), print(), unset(), isset(), empty(), include(), require() e outras assim. Você precisa antes construir uma função interceptadora (wrapper) para utilizar qualquer um desses construtores como funções convencionais.

Exemplo 12-12. Exemplo de funções variáveis
`<?php function foo() { echo "Chamou foo()<br>\n"; } function bar($arg = '') { echo "Chamou bar(); com argumento '$arg'.<br />\n"; } // Essa eh uma funcao wrapper para echo() function echoit($string) { echo $string; } $func = 'foo'; $func(); // Chama foo() $func = 'bar'; $func('test'); // Chama bar() $func = 'echoit'; $func('test'); // Chama echoit() ?>`

Você também pode chamar métodos de objetos utilizando o recurso de funções variáveis.

Exemplo 12-13. Exemplo de chama de método variável
`<?php class Foo { function MetodoVariavel() { $name = 'Bar'; $this->$name(); // Isto chama o método Bar() } function Bar() { echo "Bar foi chamada!"; } } $foo = new Foo(); $funcname = "MetodoVariavel"; $foo->$funcname(); // Isto chama $foo->MetodoVariavel() ?>`

Veja também call_user_func(), variáveis variáveis e function_exists().

Anterior | Principal | Próxima
Retornando valores | Acima | Funções internas (built-in)