Manuál PHP | ||
---|---|---|
Předcházející | Kapitola 13. Funkce | Další |
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:
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 (&):
Funkce může ve stylu C++ definovat implicitní hodnoty pro skalární argumenty takto:
function makecoffee ($type = "cappucina") { return "Dělám šálek $type.\n"; } echo makecoffee (); echo makecoffee ("espressa"); |
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:
function makeyogurt ($type = "acidophilus", $flavour) { return "Dělám kelímek jogurtu $type $flavour.\n"; } echo makeyogurt ("malina"); // nebude pracovat podle očekávání |
Výstupem uvedeného příkladu bude:
Warning: 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:
function makeyogurt ($flavour, $type = "acidophilus") { return "Dělám kelímek jogurtu $type $flavour.\n"; } echo makeyogurt ("malina"); // pracuje podle očekávání |
Příklad vytiskne:
Dělám kelímek jogurtu acidophilus malina. |
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ě.
Předcházející | Domů | Další |
Funkce | Nahoru | Návratové hodnoty |