Funções com número indefinido de parâmetros em PHP

Artigo que explica como criar funções em PHP que podem receber um número indeterminado de parâmetros.

Algumas funções em PHP possuem um número indefinido de parâmetros. Por exemplo: printf, onde o primeiro parâmetro é o "formato" e os demais são definidos de acordo com o valor do formato.

Para fazer uma função com número indefinido de parâmetros, basta usar algumas funções especiais do PHP:

  • func_num_args - Retorna o número de parâmetros informados para a função.
  • func_get_arg - Retorna um parâmetro determinado (pela posição).
  • func_get_args - Retorna os valores passados por parâmetro na forma de um array indexado numericamente.

Veja um exemplo de função que obtém a média aritmética de uma sequência de números:

function media() {
    $parametros = func_get_args();
    if (emtpy($parametros)) {
        $media = 0;
    } else {
        $soma = array_sum($parametros);
        $total = count($parametros);
        $media = $soma / $total;
    }
    return $media;
}

Observação: nada impede de você criar uma função com parâmetros pré-definidos e usar as funções mencionadas para obter possíveis parâmetros extras informados pela função.

1 comentário

Anônimo disse...

Legal, não tinha ainda visto isso de uma forma simples. Obrigado.