Argumenty funkcji

Informacje mogą być przekazywane do funkcji przez listę argumentów , która jest separowaną przecinkami listą zmiennych i / lub stałych .

PHP obsługuje przekazywanie argumentów przez wartość ( domyślnie ) , przez referencję , i wartości domyślne argumentów . Listy argumentów o zmiennej długości obsługiwane tylko w PHP 4 i nowszych ; zobacz rozdział Listy argumentów o zmiennej długości i opisy funkcji func_num_args( ) , func_get_arg( ) , i func_get_args( ) aby uzyskać więcej informacji . Podobny efekt może być uzyskany w PHP 3 przez przekazywanie tablicy argumentów do funkcji :

 
function

 
pobiera_tablice(

 
$wejscie

 
)

 
{

 
echo

 
"$wejscie[0

 
]

 
+

 
$wejscie[1

 
]

 
=

 
"

 
,

 
$wejscie[0]+$wejscie[1]

 
;

 
}





Przekazywanie argumentów przez referencję

Domyślnie , argumenty funkcji przekazywane przez wartość ( a więc jeśli zmienisz wartość argumentu wewnątrz funkcji , nie zmieni się ona poza funkcją ) . Jeśli chcesz pozwolić funkcji na modyfikację swoich argumentów , musisz przekazać je przez referencję .

Jeśli chcesz , aby argumenty były zawsze przekazywane przez referencję , przed nazwą zmiennej w definicji funkcji wstaw znak ampersand ( ) :

 
function

 
dodaj_cos_extra(

 
$string

 
)

 
{

 
$string

 
.=

 
'i

 
coś

 
extra

 
.'

 
;

 
}

 
$str

 
=

 
'To

 
jest

 
string

 
,

 
'

 
;

 
dodaj_cos_extra($str)

 
;

 
echo

 
$str

 
;

 
/

 
/

 
wyświetla

 
'To

 
jest

 
string

 
string

 
,

 
i

 
coś

 
extra

 
.

 
'





Wartości domyślne argumentów

Funkcja może definiować , podobnie jest w C++ , wartości domyślne dla argumentów skalarnych :

 
function

 
robkawe

 
(

 
$typ

 
=

 
"cappucino"

 
)

 
{

 
return

 
"Robię

 
kubek

 
$type.\n"

 
;

 
}

 
echo

 
robkawe

 
()

 
;

 
echo

 
robkawe

 
("espresso")

 
;





Powyższy kawałek kody wyświetli :

 
Robię

 
kubek

 
cappucino

 
.




 
Robię

 
kubek

 
espresso

 
.





Domyślna wartość musi być stałym wyrażeniem , nie ( na przykład ) zmienną lub członkiem klasy .

Zauważ , że używając domyślnych argumentów , argumenty zawierające wartości domyślne powinny być po prawej stronie tych nie zawierających wartości domyślnych ; w przeciwnym przypadku funkcja może nie działać tak jak się tego spodziewałeś . Zobacz to na poniższym przykładzie :

 
function

 
robjogurt

 
(

 
$typ

 
=

 
"acidophilus"

 
,

 
$smak

 
)

 
{

 
return

 
"Robię

 
miskę

 
$typ

 
$smak.\n"

 
;

 
}

 
echo

 
robjogurt

 
("malinowy")

 
;

 
/

 
/

 
nie

 
działa

 
tak

 
jak

 
się

 
spodziewaliśmy





Powyższa funkcja wyświetla :





 
Missing

 
argument

 
2

 
in

 
call

 
to

 
robjogurt(

 
)

 
in

 
/

 
usr

 
/

 
local

 
/

 
etc

 
/

 
httpd

 
/

 
htdocs

 
/

 
php3test

 
/

 
functest.html

 
on

 
line

 
41

 
Robię

 
miskę

 
malinowy

 
.





Porównaj powyższy przykład z tym :

 
function

 
robjogurt

 
(

 
$smak

 
,

 
$typ

 
=

 
"acidophilus"

 
)

 
{

 
return

 
"Robię

 
miskę

 
$type

 
$flavour.\n"

 
;

 
}

 
echo

 
robjogurt

 
("malinowy")

 
;

 
/

 
/

 
działa

 
tak

 
jak

 
się

 
spodziewaliśmy





Powyższy kod wyświetla :

 
Robię

 
miskę

 
acidophilus

 
malinowy

 
.





Listy argumentów o zmiennej długości

PHP 4 obsługuje listy o zmiennej długości w funkcjach zdefiniowanych przez użytkownika . Jest naprawdę prostę przy użyciu funkcji func_num_args( ) , func_get_arg( ) i func_get_args( ) .

Nie wymagana jest żadna specjalna składnia . Listy argumentów mogą być ciągle jawnie podane przy definicji funkcji i będą się zachowywać normalnie .