Argumentos de funções

Informações podem ser passadas para funções através da lista de argumentos , que é uma lista de variáveis e / ou constantes delimitados por vírgulas .

O PHP suporta a passagem de argumentos por valor ( o padrão ) , passagem por referência e valores padrão de argumento . Listas de argumentos de comprimento variável são suportadas apenas no PHP4 e posterior ; veja Número de argumentos variável e as referências das funções func_num_args( ) , func_get_arg( ) e func_get_args( ) para mais informações . Um efeito similar pode ser atingido no PHP 3 pela passagem de um array de argumentos para uma função :






Fazendo argumentos serem passados por referência

Por padrão , argumentos de função são passados por valor ( de forma que se você mudar o valor do parâmetro dentro da função , ele não é alterado fora da função ) . Se você deseja permitir que uma função modifique seus argumentos , você precisa passá-los por referência .

Se você quer que um argumento para uma função sempre seja passado por referência , você pode preceder o nome do argumento com um " e comercial " ( ) na definição da função :

 
function

 
add_some_extra(

 
$string

 
)

 
{

 
$string

 
.=

 
'

 
e

 
alguma

 
coisa

 
mais

 
.'

 
;

 
}

 
$str

 
=

 
'Isto

 
é

 
uma

 
string

 
,'

 
;

 
add_some_extra($str)

 
;

 
echo

 
$str

 
;

 
/

 
/

 
imprime

 
'Isto

 
é

 
uma

 
string

 
,

 
e

 
alguma

 
coisa

 
mais

 
.

 
'





Valores padrão de argumentos

Uma função pode definir valores padrão no estilo C+ + para argumentos escalares , como a seguir :

 
function

 
cafeteira

 
(

 
$tipo

 
=

 
"cappuccino"

 
)

 
{

 
return

 
"Fazendo

 
uma

 
xícara

 
de

 
café

 
$type.\n"

 
;

 
}

 
echo

 
cafeteira

 
()

 
;

 
echo

 
cafeteira

 
("expresso")

 
;





A saída do código acima será :

 
Fazendo

 
uma

 
xícara

 
de

 
café

 
cappucino

 
.




 
Fazendo

 
uma

 
xícara

 
de

 
café

 
expresso

 
.





O valor padrão precisa ser uma expressão constante , não ( por exemplo ) uma variável ou um membro de classe .

Note que usando argumentos padrão , qualquer padrão deve vir após os argumentos sem padrão : caso contrário , as coisas não funcionarão como esperado . Considere o seguinte trecho de código :

 
function

 
iogurtera

 
(

 
$tipo

 
=

 
"azeda"

 
,

 
$sabor

 
)

 
{

 
return

 
"Fazendo

 
uma

 
taça

 
de

 
$tipo

 
$sabor.\n"

 
;

 
}

 
echo

 
iogurtera

 
("framboesa")

 
;

 
/

 
/

 
não

 
funciona

 
como

 
esperado





A saída do exemplo acima é :





 
Missing

 
argument

 
2

 
in

 
call

 
to

 
iogurtera(

 
)

 
in

 
/

 
usr

 
/

 
local

 
/

 
etc

 
/

 
httpd

 
/

 
htdocs

 
/

 
php3test

 
/

 
functest.html

 
on

 
line

 
41

 
Fazendo

 
uma

 
taça

 
de

 
framboesa

 
.





Agora , compare o que está acima com este :

 
function

 
iogurtera

 
(

 
$sabor

 
,

 
$tipo

 
=

 
"azeda"

 
)

 
{

 
return

 
"Fazendo

 
uma

 
taça

 
de

 
$tipo

 
$sabor.\n"

 
;

 
}

 
echo

 
iogurtera

 
("framboesa")

 
;

 
/

 
/

 
funciona





A saída deste exemplo é :

 
Fazendo

 
uma

 
taça

 
de

 
framboesa

 
azeda

 
.





Número variável de argumentos

O PHP4 tem suporte para um número variável de argumentos nas funções definidas pelo usuário . Isto é realmente bem fácil , usando as funções func_num_args( ) , func_get_arg( ) e func_get_args( ) .

Nenhuma sintaxe especial é requerida , e a lista de argumentos ainda pode ser fornecida explicitamente com as definições de funções e se comportarão normalmente .