Funções
A sintaxe básica para definir uma função é:
function nome_funcao ([arg1],[arg2],[arg3],[argx] )
{
comandos;
[return valor];
}
Ex.
function ola_visitante($nome)
{
echo "Olá $nome, bem vindo.";
}
ola_visitante("Mário"); //imprime Olá Mário, bem vindo.
Passagem de parametros
Ex.
function mais10($numero)
{
$numero += 10;
}
$a = 2;
mais5($a); // o valor de $a continua sendo 2, pois a passagem de parametro foi feita por valor.
O modo correto seria uma das opções abaixo (utilizando &).
function mais10(&$numero1, $numero2)
{
$numero1 += 10;
$numero2 += 10;
}
$x = 2;
$y = 3;
mais10($x, $y); //nesse caso somente a variável $x terá seu valor alterado
mais10($x, &$y); // nesse caso as duas variáveis terão os valores alterados
Argumentos com valores pré-definidos
function saudacao($texto = "Bom Dia")
{
echo $texto;
}
saudacao(); // imprime Bom Dia
saudacao("Boa Tarde"); //imprime boa tarde
Quando houver mais de um parametro, e o mesmo conter valores pré-definidos somente para um destes, o mesmo deverá ser passado no final.
Ex.
function saudacao1($texto="Bom Dia", $nome)
{
echo "Bem vindo".$nome.", ".$texto;
}
saudacao1("Jairo"); //Esta função gerará um erro
O modo correto seria
function saudacao2( $nome, $texto="Bom Dia")
{
echo "Bem vindo".$nome.", ".$texto;
}
saudacao2("Jairo");
Escopo
Escopo de uma variável define onde esta poderá ser utilizada.
$cor = "Verde";
function mostraCor()
{
echo $cor;
}
mostraCor(); // não retornará resultado algum, pois a variável $cor é de escopo global.
$cor = "Verde";
function mostraCor()
{
global $cor;
echo $cor;
}
mostraCor(); // imprime o texto Verde
Outra forma seria utilizando o array pré-definido do php $GLOBALS.
$cor = "Verde";
function mostraCor()
{
$GLOBALS['cor']; // imprime Verde
echo $cor; // não imprime nada
}
mostraCor();
Por Luiz Felipe Baio