"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como chamar uma função PHP com um número variável de argumentos?

Como chamar uma função PHP com um número variável de argumentos?

Publicado em 2024-11-10
Navegar:923

How to Call a PHP Function with a Variable Number of Arguments?

Chame uma função PHP com número variável de argumentos

Ao lidar com funções PHP que aceitam um número variável de argumentos, o número de parâmetros passado para a função pode ser determinado com base no comprimento de uma matriz. Para conseguir isso, o PHP fornece várias técnicas:

call_user_func_array

Se os argumentos forem armazenados em um array, a função call_user_func_array pode ser empregada. Esta função aceita um array como seu segundo parâmetro, que contém os argumentos da função.

Exemplo:

function test() {
  var_dump(func_num_args());
  var_dump(func_get_args());
}

$params = [
  10,
  'glop',
  'test',
];

call_user_func_array('test', $params);

Este código produzirá:

int 3
array
  0 => int 10
  1 => string 'glop' (length=4)
  2 => string 'test' (length=4)

for Loop

Outra opção é usar um loop for para iterar sobre o array e passar cada elemento como um argumento para a função.

Exemplo:

function test($num1, $str1, $str2) {
  var_dump(func_get_args());
}

$params = [
  10,
  'glop',
  'test',
];

for ($i = 0; $i 

Este código produzirá:

array(1) {
  [0] => int 10
}
array(1) {
  [0] => string 'glop' (length=4)
}
array(1) {
  [0] => string 'test' (length=4)
}

Ao utilizar essas técnicas, você pode efetivamente chamar funções PHP com um número variável de argumentos com base no comprimento de um array.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3