| PHP Ръководство | ||
|---|---|---|
| Предишна страница | Глава 17. Функции | Следваща страница |
Към функциите може да бъде предавана информация посредством списък с аргументи, под формата на разделен със запетаи списък с изрази.
PHP поддържа предаването на аргументи по стойност (по подразбиране), по референция и стойности по подразбиране. Списъци с аргументи с променлива дължина се поддържат в PHP 4 и по-късно; вж. Променлива дължина на списъка с аргументи и документацията на функциите func_num_args(), func_get_arg() и func_get_args() за повече информация. Подобен ефект може да бъде получен и в PHP 3 чрез предаване на масив от аргументи на функцията:
По подразбиране, аргументите се предават на функциите по стойност (така че ако промените стойността на аргумента вътре във функцията, това няма да промени съответната променлива извън нея). Ако искате да разрешите на функция да променя аргументите си, трябва да ги предадете по референция.
Ако искате даден аргумент на функция винаги да бъде предаван по референция, можете да предшествате името на аргумента с амперсанд (&) в дефиницията на функцията:
Функция може да дефинира стойности по подразбиране за скаларни аргументи, както в C++, така:
Изходът от горния откъс е:
Приготвяне на чаша капучино. Приготвяне на чаша еспресо. |
PHP позволява също и употребата на масиви и на специалния тип NULL за стойности по подразбиране, например:
Стойността по подразбиране трябва да бъде константа, а не (например) променлива, член на клас или извикване на функция.
Забележете, че когато се използват аргументи по подразбиране, те трябва да бъдат от дясната страна, а тези без стойности по подразбиране - от лявата; в противен случай, нещата може да не работят според очакванията. Разгледайте следния откъс:
Изходът от горния пример е:
Warning: Missing argument 2 in call to makeyogurt() in /usr/local/etc/httpd/htdocs/php3test/functest.html on line 41 Сервиране на мляко. |
Сега, сравнете горното с това:
Изходът от този пример е:
Сервиране на чаша кисело мляко. |
Забележка: От PHP 5, стойностите по подразбиране могат да бъдат предавани по референция.
PHP 4 и нагоре поддържа списък с аргументи с променлива дължина в потребителски-дефинираните функции. Това е лесно, посредством функциите func_num_args(), func_get_arg() и func_get_args().
Не се изисква специален синтаксис и списъкът с аргументи може да бъде все така изрично предоставян с дефинициите на функциите и те ще работят както трябва.
| Предишна страница | Начало | Следваща страница |
| Функции | Начало на раздела | Връщане на стойности |