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(), unset(), isset(), empty() e include(). Entretanto, o construtor print() é uma exceção, e irá funcionar. Este é uma das maiores diferenças entre as funções do PHP e os construtores de linguagem.

Exemplo 12-1. 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";
}

$func = 'foo';
$func();
$func = 'bar';
$func('teste');
?>

Veja também: Variáveis variáveis e function_exists().