PHP kézikönyv
Előző
13.
Fejezet.
Függvények
Következő
Az információ a függvényekhez az argumentumlistán keresztül jut el, ami egy vesszővel határolt változó és / vagy konstanslista.
A PHP támogatja az érték szerinti (ez az alapértelmezett) referenciakénti paraméterátadást is, és az argumentumok kezdőértékét.
A változó hosszúságú argumentumlisták csak a PHP 4-ben jelentek meg.
Lásd a változó hosszúságú argumentumlistákat és a func_num_args(), func_get_arg() és a func_get_args() függvényeket részletesebb leírásért.
PHP 3-ban hasonló hatás érhető el a függvénynek tömb típusú változó paraméterként történő átadásával:
function tombot_kezel( $input) {echo "$input[0] + $input[1] = ", $input[0]+$input[1];}
Alapértelmezésben a függvény paraméterei érték szerint adódnak át (vagyis ha megváltoztatod a változót a függvényen belül, annak a függvényen kívülre nincs hatása).
Ha szeretnéd megengedni, hogy a függvény módosítsa az átadott paramétereket, referencia szerint kell átadni azokat.
Ha egy függvényargumentum mindig referencia szerint kell átadni, akkor a függvénydefinícióban az argumentum neve elé egy jelet kell írni.
function fgv_extrakkal( $string) {$string .= 'és a szükséges plusssz .';} $str = 'Ez egy karakterfüzér, '; fgv_extrakkal($str); echo $str; / / kiírja, hogy 'Ez egy karakterfüzér, és a szükséges plusssz.'
Bármely függvény skalár-argumentumainak megadhatsz kezdőértéket a C+ + szintaxisnak megfelelően:
function kavet_csinal ($tipus = "cappucino") {return "Csinálok egy pohár ". $tipus. "t.\n";} echo kavet_csinal (); echo kavet_csinal ("espresso");
A fenti kód kimenete:
Csinálok egy pohár cappucinot.
Csinálok egy pohár espressot.
A kezdőértéknek konstans kifejezésnek kell lennie, nem lehet pl. változó vagy objektum.
Figyelj arra, hogy a kezdőértékkel rendelkező argumentumok más argumentumoktól jobbra helyezkedjenek el; különben a dolgok nem úgy mennek majd, ahogy azt várnád [hanem úgy, ahogy írtad:)].
Lásd a következő kódot:
function joghurtot_keszit ($type = "acidophilus", $flavour) {return "Készítek egy köcsög $flavour ízű $type-t.\n";} echo joghurtot_keszit ("eper"); / / nem úgy működik, mint szeretnéd!?!?
A fenti példa kimenete:
Missing argument 2 in call to joghurtot_keszit() in / usr / local / etc / httpd / htdocs / phptest / functest.php on line 41 Készítek egy köcsög ízű eper-t.
Most hasonlítsd össze az alábbival:
function joghurtot_keszit ($flavour, $type = "acidophilus") {return "Készítek egy köcsög $flavour ízű $type-ot.\n";} echo joghurtot_keszit ("eper"); / / ez már jó
A fenti példa kimenete:
Készítek egy eper ízű acidophilus-t.
Megjegyzés: [Azért vannak kiskapuk...
Az argumentumokat adjuk át egy asszociatív tömbben!
Az alapértékeket pedig egy másik tömbben.
Ezután vegyük végig az alapértékeket tartalmazó tömb elemeit.
Ha nem definiáltak a kapott tömbben, akkor írjuk felül az alapértékeket tartalmazó tömb megfelelő elemével.
Így bármelyik argumentum elhagyható, sőt még annyit is nyerünk a dolgon, hogy nem kell megjegyeznünk a paraméterek sorrendjét. (forrás: egy bő lére eresztett amerikai PHP 3 könyv)]
A PHP 4 támogatja a változó hosszúságú argumentumlistát a felhasználók által definiált függvényekben.
Valóban nagyon egyszerű kezelni ezt a func_num_args(), func_get_arg() és a func_get_args() függvényekkel.
Semmilyen különleges szintakszist nem igényel és az argumentumlista lehet explicit módon adott és viselkedhet úgy is, mint egy normál függvény.
Előző
Tartalom
Következő
Függvények
Fel
Visszatérési értékek