Argumenty funkcí
Informace
mohou
být
do
funkcí
předávány
přes
seznam
argumentů
,
což
je
seznam
proměnných
a
/
nebo
konstant
oddělených
čárkou
.
PHP
podporuje
předávání
argumentů
hodnotou
(
implicitní
)
,
předávání
odkazem
,
a
implicitní
hodnoty
argumentů
.
Proměnná
délka
seznamu
argumentů
je
podporována
pouze
v
PHP
4
a
pozdějších
;
viz
Seznam
argumentů
proměnné
délky
a
reference
funkcí
func_num_args(
)
,
func_get_arg(
)
,
a
func_get_args(
)
.
Podobný
efekt
může
být
v
PHP
3
dosažen
předáním
pole
argumentů
do
funkce
:
Předávání argumentů odkazem
Implicitně
jsou
argumenty
funkcí
předávány
hodnotou
(
takže
když
změníte
hodnotu
argumentu
ve
funkci
,
nezmění
se
mimo
funkci
)
.
Pokud
chcete
umožnit
funkci
modifikovat
své
argumenty
,
musíte
je
předávat
odkazem
.
Pokud
chcete
,
aby
byl
argument
do
funkce
předáván
vždy
odkazem
,
můžete
před
název
argumentu
v
definici
funkce
předřadit
ampersand
(
)
:
Implicitní hodnoty argumentů
Funkce
může
ve
stylu
C+
+
definovat
implicitní
hodnoty
pro
skalární
argumenty
takto
:
Výstupem
výše
uvedeného
kódu
je
:
Dělám
šálek
cappucina
.
Dělám
šálek
espressa
.
|
Implicitní
hodnota
musí
být
konstantní
výraz
,
ne
(
například
)
proměnná
nebo
položka
třídy
.
Uvědomte
si
,
že
když
používáte
implicitní
argumenty
,
jakékoli
implicitní
hodnoty
by
měly
být
na
pravé
staně
neimplicitního
argumentu
;
jinak
to
nebude
pracovat
podle
očekávání
.
Uvažujme
tento
kus
kódu
:
Výstupem
uvedeného
příkladu
bude
:
Missing
argument
2
in
call
to
makeyogurt(
)
in
/
usr
/
local
/
etc
/
httpd
/
htdocs
/
php3test
/
functest.html
on
line
41
Dělám
kelímek
jogurtu
malina
.
|
A
nyní
to
porovnejme
s
tímto
:
Příklad
vytiskne
:
Dělám
kelímek
jogurtu
acidophilus
malina
.
|
Seznam argumentů proměnné délky
PHP
4
má
podporu
pro
seznam
argumentů
proměnné
délky
v
uživatelských
funkcích
.
Je
to
opravdu
jednoduché
,
použitím
funkcí
func_num_args(
)
,
func_get_arg(
)
,
a
func_get_args(
)
.
Není
třeba
žádná
zvláštní
syntaxe
,
seznam
argumentů
může
být
stále
explicitně
poskytován
definicemi
funkcí
a
bude
se
chovat
jako
normálně
.