Nesta aula aprenderemos a enviar como parâmetro de uma função uma lista de valores. Da mesma forma, aprenderemos a implementar a função de forma a ser capaz de receber uma listagem arbitrária como argumento. |
LISTA DE PARÂMETROS
Estudamos que ao invocar uma função é necessário definir cada argumento por ela definida, do contrário, será levantado uma exceção e o nosso Script será interrompido.
No entanto, há situações em que é necessário enviar como argumento um conjunto de valores, isto é, enviar um conjunto de parâmetros que não está definido na declaração da função.
A verdade é que qualquer função por padrão pode receber mais parâmetros do que foi em sua declaração definido. Logo, não estudaremos a forma como enviar um conjunto arbitrário de parâmetros e sim, como recebe-los dentro da implementação da função.
Funções capazes de receber quantidades arbitrárias de parâmetros são comumente chamadas de funções variádicas. Nesse momento, vamos estudar a forma antiga para a manipulação de lista de parâmetro e por essa razão, não estamos utilizando a nomenclatura correta. O que estamos estudando é código legal e o mesmo só deve ser utilizado nas situações em que o nosso Script for executado em versões antigas do PHP, ou então, quando encontrarmos um código implementado dessa forma.
Estudaremos a maneira antiga de manipular lista de parâmetros nesta e na próxima aula . Na sequência estudaremos as funções variádicas propriamente ditas, ou seja, a forma como devemos atualmente manipular listas arbitrárias de parâmetros na próxima aula .
O mais importante a saber nesse momento é que as funções que o PHP disponibiliza manipulam a lista de parâmetros como sendo um Array. Logo, o primeiro parâmetro terá índice igual a 0, o segundo parâmetro índice igual a 1 e assim por diante.
FUNÇÕES - RECEBENDO LISTA DE PARÂMETROS
As versões antigas da linguagem PHP definiram 3 funções que podem ser invocadas de quaisquer outra função para ler a lista de parâmetro que foi enviada, são elas:
- func_get_arg(<índice>) - lê um parâmetro conforme o índice passado como argumento
- func_get_args() - retorna um array com a lista de parâmetros recebido
- func_num_args() - retorna a quantidade de parâmetros recebidos
FUNÇÃO func_get_arg()
A função func_get_arg() retorna o valor referente ao índice passado como parâmetro, ou seja, se passarmos o valor 0, será retornado o valor referente ao elemento vinculado ao índice 0.
function soma()
{
$a = func_get_arg(0);
$b = func_get_arg(1);
$x = $a + $b;
echo "A soma dos parâmetros é: " . $x;
}
soma(1, 2);
Se executarmos o código acima, será impresso a soma dos 2 primeiros números passados como parâmetro.
FUNÇÕES func_get_arg() E func_num_args()
Algumas vezes não saberemos quantos parâmetros que foram enviados, logo, não é uma boa prática testar se existe algum valor definido nas primeiras posições com a função func_get_arg(). Então, temos que o PHP nos fornece 2 outras funções para trabalharmos com a lista de parâmetros que está sendo enviada, são elas func_get_arg() e func_num_args().
function soma()
{
$num = func_num_args();
$args = func_get_args();
#imprime os parâmetros enviados
$a = func_get_args();
foreach ($a as $v) {
echo $v;
}
#soma os parâmetros enviados
$total = 0;
for ($i = 0; $i < $num; $i++)
$total += $args[$i];
echo "A soma dos parâmetros é: " . $total;
soma(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
}
EXEMPLO FEITO EM AULA
function soma(){
$total = func_get_arg(0) + func_get_arg(1);
echo $total;
}
soma(10, 2);
Tags curso, php, função, parâmetro, argumento, função variádica, blog
Comentários
comments powered by Disqus