Függvények
Table of Contents
Felhasználó által definiált függvények
Függvényeket a következő szintaxis szerint definiálhatod:
Example#1 Pszeudokód a függvényhasználat bemutatására
<?php
function foo($arg_1, $arg_2, /* ..., */, $arg_n)
{
echo "Példa függvény.\n";
return $retval;
}
?>
Bármely érvényes PHP kód megjelenhet egy függvényen belül, akár még más függvény vagy osztály definÃciók is.
PHP 3-ban a függvényeket definiálni kell, mielÅ‘tt hivatkozás történik rájuk (függvényhÃvás elÅ‘tt). PHP 4-tÅ‘l nincs ez a megkötés, kivéve amikor egy függvény feltételesen van definiálva, mint ahogy az alábbi két példa mutatja.
When a function is defined in a conditional manner such as the two examples shown. Its definition must be processed prior to being called.
Example#2 Feltételesen definiált függvények
<?php
$izet_definialni = true;
/* Innen nem tudjuk meghÃvni az ize() függvényt mivel még nem létezik,
viszont a bigyo() függvényt meghÃvhatjuk */
bigyo();
if ($izet_definialni) {
function ize()
{
echo "Én nem létezem mÃgnem a program futása eljut hozzám.\n";
}
}
/* Most nyugodtan meghÃvhatjuk az ize() függvényt,
abban az esetben, ha az $izet_definialni változó értéke true */
if ($izet_definialni) ize();
function bigyo()
{
echo "Én létezek már a program futásának megkezdésekor is..\n";
}
?>
Example#3 Függvények függvényekben
<?php
function ize()
{
function bigyo()
{
echo "Én nem létezek amÃg az ize() nincs meghÃvva.\n";
}
}
/* Itt nem hÃvhatjuk meg a bigyo() függvényt
mivel még nem létezik. */
ize();
/* Itt már meghÃvhatjuk a bigyo()-t,
mivel az ize() függvény feldolgozása
elérhetővé tette. */
bigyo();
?>
Minden függvény és osztály láthatósága globális: függvényen kÃvülrÅ‘l is meghÃvható, akkor is ha függvényen belül definiálták, és fordÃtva.
A PHP nem támogatja a függvények polimorfizmusát (többalakúságát), a függvényekdefinÃciókat nem lehet megszüntetni vagy már definiált függvényeket újradefiniálni.
Note: A függvénynevek nem érzékenyek a kis- és nagybetűkre, bár rendszerint jó gyakorlat olyan formában meghÃvni Å‘ket, ahogyan deklaráltuk.
A PHP 3 nem támogatja a változó számú függvényargumentumokat, bár az argumentumok kezdőértéke támogatott. Lásd az Argumentumok kezdőértéke cÃmű részt bÅ‘vebb információért. A PHP 4 és a késÅ‘bbi változatok mindkettÅ‘ lehetÅ‘séget támogatják. Lásd a Változó számú függvényargumentumok cÃmű részt és a func_num_args(), func_get_arg() és a func_get_args() függvényeket részletesebb leÃrásért.
PHP-ben lehetséges rekurzÃv függvények hÃvása. Kerüld azonban a 100-200 rekurziós szint elérését, mert ez felemésztheti az egész vermet, Ãgy a szkript váratlanul befejezheti a futását.
Example#4 RekurzÃv függvények
<?php
function rekurzio($a)
{
if ($a < 20) {
echo "$a\n";
rekurzio($a + 1);
}
}
?>