PHP kézikönyv
Előző |  | Következő

# 17. Fejezet. Függvények

# Felhasználó által definiált függvények

Függvényeket a következő szintaxis szerint definiálhatod:

Példa 17-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.

Példa 17-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";
}
?>`

Példa 17-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.

> Megjegyzés: 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.

Példa 17-4. Rekurzív függvények

`<?php function rekurzio($a) { if ($a < 20) { echo "$a\n"; rekurzio($a + 1); } } ?>`

Előző | Tartalom | Következő
include_once() | Fel | Függvényargumentumok