Como criar funções variádicas no PHP
Funções variádicas são aquelas que aceitam um número indefinido de argumentos. No PHP, podemos criar funções que recebem múltiplos valores sem precisar definir um número fixo de parâmetros.
Usando func_get_args()
(Método antigo)
Antes do PHP 5.6, a forma de capturar argumentos variáveis era com func_get_args()
:
<?php
function somar() {
$numeros = func_get_args();
return array_sum($numeros);
}
echo somar(5, 10, 15); // Saída: 30
?>
Aqui, func_get_args()
retorna um array com todos os argumentos passados.
Usando ...
(Spread Operator) - PHP 5.6+
A partir do PHP 5.6, podemos usar ...
para capturar múltiplos argumentos:
<?php
function somar(...$numeros) {
return array_sum($numeros);
}
echo somar(5, 10, 15); // Saída: 30
?>
Este método é mais moderno e seguro, pois os argumentos são convertidos automaticamente em um array.
Misturando parâmetros fixos e variádicos
Podemos combinar parâmetros normais com ...
:
<?php
function apresentar($nome, ...$hobbies) {
echo "Nome: $nome <br>";
echo "Hobbies: " . implode(", ", $hobbies);
}
apresentar("Carlos", "Futebol", "Música", "Leitura");
?>
Aqui, o primeiro parâmetro é obrigatório, enquanto os demais são capturados no array $hobbies
.
Funções variádicas com tipos de argumento (PHP 7+)
Desde o PHP 7, podemos tipar os argumentos variáveis:
<?php
function multiplicar(int ...$valores): int {
return array_product($valores);
}
echo multiplicar(2, 3, 4); // Saída: 24
?>
Isso garante que todos os argumentos sejam inteiros, evitando erros inesperados.
Por que usar funções variádicas no PHP?
Funções variádicas tornam o código mais flexível e reutilizável, pois permitem aceitar qualquer número de argumentos sem precisar definir cada um separadamente. O uso do operador ...
simplifica bastante a manipulação de múltiplos valores e melhora a legibilidade do código. Essa funcionalidade é amplamente utilizada para somas, concatenação de strings e funções que trabalham com listas de valores dinâmicos.
Algumas aplicações:
- Somar múltiplos valores sem precisar definir parâmetros fixos
- Concatenar strings dinamicamente
- Gerar listas dinâmicas de argumentos para funções
- Manipulação de múltiplos dados de entrada em APIs
Dicas para quem está começando
- Use
...
para coletar múltiplos argumentos como array. - Combine parâmetros normais e variádicos para maior controle.
- Evite
func_get_args()
, pois o operador...
é mais seguro. - Se precisar garantir o tipo dos argumentos, use
int ...$valores
. - Prefira funções variádicas em cenários onde o número de argumentos pode variar.

Daniel Moreira
Especialista em desenvolvimento web com PHP e construção de APIs REST.
Mais sobre o autor