As funções de variável permitem usarmos uma variável como uma função.
Quando anexamos parênteses () a uma variável, o PHP procura a função cujo nome é o mesmo que o valor da variável e a executa.
Exemplo:
- Criamos uma variável chamada $f que recebe o texto(string) ‘strlen’
- Depois usamos a variável como sendo uma função $f(). Ela procura pela função strlen() e a executa. strlen() é uma função interna do PHP.
- Se o PHP não encotrar nenhum nome relacionado com uma função, por exemplo se colocarmos um outro valor ao invés de strlen, ele retornará um erro: Fatal error: Uncaught Error: Call to undefined function
<?php
$f = 'strlen';
echo $f('Hello');
?>
Resultado:
5
Alguns outros exemplos:
Exemplo 01
<?php
$numeros = [1, 4, 6, 7];
$f = 'print_r';
$f($numeros);
?>
Resultado:
Array ( [0] => 1 [1] => 4 [2] => 6 [3] => 7 )
Exemplo 02
<?php
$numeros = [1, 4, 6, 7];
$f = "var_dump";
$f($numeros);
?>
Resultado:
array(4) { [0]=> int(1) [1]=> int(4) [2]=> int(6) [3]=> int(7) }
Exemplo 03
<?php
function usando_echo(){echo "Oii";}
$f = 'usando_echo';
$f();
?>
Resultado:
Oii
Conclusão
Vimos sobre funções variáveis. Mas é bom notar que funções variáveis não funcionam com construtores de linguagem como echo, print, unset(), isset(), empty(), include, require e outras do tipo.