Skip to content

Latest commit

 

History

History
74 lines (57 loc) · 2.69 KB

17.2- funcoes_variaveis.md

File metadata and controls

74 lines (57 loc) · 2.69 KB

Variáveis com nomes de funções - variable functions

O PHP suporta funções variáveis. Isto significa que se um nome de variável tem parênteses no final, o PHP procurará uma função que tenha o mesmo nome e tentará executá-la, por exemplo, $variavel().

Para saber quando o valor de uma variável representa uma função, utilizar a função function_exists() passando como argumento o conteúdo da variável que espera que seja o nome de uma função.

Há algumas outras formas de se fazer este teste como por exemplo usar a função gettype que retorna o tipo de uma variável ou usar um var_dump (só em ambiente de desenvolvimento) para vermos com detalhes o conteúdo de uma variável.

Construtores de linguagem como echo, print, unset(), isset(), empty(), include, require não podem ser chamados através de variáveis com nome de funções.

$variavel = 'echo';
$variavel('Olá, mundo'); //não funciona

Exemplo 1

function olaMundo() {
    echo 'Olá, mundo!'. PHP_EOL;
}
$func = 'olaMundo'; // a variável $func está rececendo a function olaMundo
$func(); // aqui estamos chamando a função variável que retorna Olá, mundo!

Exemplo 2

function olaVida($arg = ' ') // aqui a variável $arg está recedendo uma string vazia como valor padrão.
{
    echo "Na função olaVida o argumento foi $arg" . PHP_EOL;
}

$func = 'olaVida'; // a variável $func está rececendo 'olaVida' como string
$func('meu argumento');  // aqui estamos chamando a função variavel e passando uma string como argumento.

Exemplo 3

function exibe($string)
{
    echo $string . PHP_EOL;
}

$func = 'exibe'; // a função variável $func está rececendo a function exibe
$func('alguma coisa');  // retorna alguma coisa

Exemplo 4

function soma($a, $b)
{
    return $a + $b;
}

function subtrai($a, $b)
{
    return $a - $b;
}
$operacao = readline('Informe a operação: ');
//nome da função: soma

$valor1 = readline('Informe um valor: ');
$valor2 = readline('Informe um valor: ');

echo $operacao($valor1, $valor2) . PHP_EOL;
  • Começamos o nosso código definindo a function soma() e a function subtrai e nelas definimos a nossa lógiga.
  • Em seguida, foi criada uma variável operacao que está recebendo uma entrada do usuário. Como no comentário do exemplo, o usuário digitou a string soma (que é o nome da função variável que ele deseja utilizar).
  • Na próxima linha definimos duas variáveis $valor1 e $valor2 que também deverão ser informadas pelo usuário.
  • E por último, estamos imprimindo a saída da função variável que está recebendo $valor1 e $valor2 como argumentos.

Voltar a página inicial