Curso de PHP: Funções - Parte II - Parâmetros de Funções
Nesse post veremos um ponto importantíssimo na utilização de funções: Passagem de parâmetros, que são formas de repassar valores para uma função utilizar internamente em seu código.
Passagem de parâmetros
Ao escrever uma função temos a intenção de modularizar o código, reunindo um trecho de código específico em um função poderemos utilizá-la em qualquer e se precisarmos alterá-la faremos apenas uma vez.
Pode parecer contraditório, mas uma função que é tão específica ao ponto de não suportar diferentes situações não é tão usual. Para clarear, vou expor um problema fácil e rápido: Calcular a área de um retângulo de 5cm por 8cm.
Podemos escrever a função assim:
<?php
function areaRetangulo() {
return 5 * 8;
}
echo 'A área é: ' . areaRetangulo();Certo? Teoricamente, sim.
Agora adiciono mais um desafio (bem difícil) ao problema: Carcular a área de um retângulo de 5cm por 8cm e de um outro retângulo com medidas de 6cm x 9cm.
O que fazer? Escrever outra função?
<?php
function areaRetangulo() {
return 5 * 8;
}
function areaRetangulo2() {
return 6 * 9;
}
echo 'A área é: ' . areaRetangulo();
echo ' e a outra área é: ' . areaRetangulo2();Certo? Teoricamente, sim.
Mas você não está estranhando nada? As duas funções fazem praticamente a mesma coisa, tanto é que elas tem quase o mesmo nome. A única coisa que mudou são os valores.
Há a necessidade de ter duas funções, praticamente iguais, onde a única coisa que muda são os valores? NÃO, para isso existem os parâmetros.
Parâmetros são valores ou variáveis que passamos na chamada de uma função. Dentro da função, podemos resgatar os valores passados com algumas funções ou variáveis. O mais comum é por variável.
Recuperando parâmetros por variável
Então, vejamos como resgatar o parâmetro de uma função por variável:
<?php
function areaRetangulo($altura, $largura) {
return $altura * $largura;
}
echo 'A área é: ' . areaRetangulo(5, 8);
echo ' e a outra área é: ' . areaRetangulo(6, 9);Agora faz mais sentido. Temos uma função que calcula a área de um retângulo. O que temos que passar como parâmetro são apenas as medidas.
Note, que definimos os nomes de parâmetros como variável quando criamos a função, assim, podemos chamar essas variáveis dentro da funão para ter acesso aos valores.
Atenção: Na forma que foi definida a função acima, se esquecermos de passar algum parâmetro, o PHP irá apresentar um Warning.
Valor padrão de um parâmetro
No exemplo anterior, temos dois parâmetros $altura e $largura. Se esquecermos algum, um Warning será emitido.
Talvez esse não seja um bom exemplo, mas leia com atenção: No nosso problema, vamos assumir que a largura de todas as figuras, por padrão tem 1cm. Mas em alguns casos elas podem ter uma largura diferente Então podemos fazer o seguinte:
<?php
function areaRetangulo($altura, $largura = 1) {
return $altura * $largura;
}
echo 'A área é: ' . areaRetangulo(5, 8);
echo ' e a outra área é: ' . areaRetangulo(6);Veja que no código acima, eu chamei a função passando 5 e 8, para calcular uma figura de 5cm por 8cm. Na chamada abaixo, eu só passei 1 (um) parâmetro, logo o PHP atribui esse parâmetro para $altura. O segundo parâmetro não foi informado, logo o PHP usa o valor padrão, definido na declaração da função.
É muito importante lembrar que os valores que podem ser omitidos, ou melhor, os parâmetros que recebem valores padrão, devem estar no final da declaração de uma função.
Recuperando parâmetro com funções
Poderemos recuperar os parâmetros de uma função, sem declarar os parâmetros na criação dela. Por exemplo:
<?php
function areaRetangulo() {
$altura = func_get_arg(0);
$largura = func_get_arg(1);
return $altura * $largura;
}
echo 'A área é: ' . areaRetangulo(5, 8);
echo ' e a outra área é: ' . areaRetangulo(6, 9);Perceba que ao utilizar a função func_get_arg() eu preciso passar um valor para ela indicando qual parâmetro eu quero recuperar. O valor 0 é o primeiro parâmetro, o 1 é o segundo, e assim sucessivamente.
Usando funções para recuperar os parâmetros permite-nos escrevermos funções que recebem uma quantidade de parâmetros variáveis, por exemplo, em um momento eu posso chamá-la sem nenhum parâmetro, e em outro posso passar 3 ou 4 parâmetros.
Há outras duas funções interessantes para se trabalhar com parâmetros:
- func_num_args() : retorna a quantidade de parâmetros passados para a função.
- func_get_args() : retorna todos os parâmetros passados em um array
No próximo post escrevei sobre o escopo de variáveis, passagem por valor e referência.
- Login to post comments





Ótimo material sobre PHP