| Передача аргументов пользовательским функциям |
|
|
|
|
При объявлении функции можно указать список параметров, которые могут передаваться функции, например: <?php При вызове функции funct() нужно указать все передаваемые параметры, поскольку они являются обязательными. В PHP пользовательские функции могут обладать необязательными параметрами или параметрами по умолчанию, но об этом позже. Передача аргументов по ссылке Согласно сложившимся традициям, во всех языках программирования есть два вида аргументов функций:
Функции не могут изменить параметр-значение, то есть он доступен функции "только для чтения" - она может его использовать, но не более. В качестве параметра-значения необязательно указывать переменную, можно указать само значение, отсюда название - параметр-значение. По умолчанию аргументы в функцию передаются по значению (это означает, что если вы измените значение аргумента внутри функции, то вне ее значение все равно останется прежним). Приведем пример: <?php В отличие от параметров-значений, параметры-переменные могут быть изменены в процессе работы функции. Тут уже нельзя передавать значение, нужно обязательно передать перемкнную. В PHP для объявления параметров-переменных используется механизм передачи переменной по ссылке. Если вы хотите разрешить функции модифицировать свои аргументы, вы должны передавать их по ссылке. Если вы хотите, что бы аргумент всегда передавался по ссылке, вы должны указать амперсанд (&) перед именем аргумента в описании функции: <?php Параметры по умолчанию При программировании часто возникает необходимость создания функции с переменным числом параметров. Тому есть две причины:
В PHP функции могут возвращать любые значения в зависимости от переданных им параметров. <?php Результат работы приведенного скрипта будет таким: Сделайте чашечку Чая PHP также позволяет использовать массивы и специальный тип NULL в качестве значений по умолчанию, например: <?php Рассмотренный скрипт выведет следующее: Сделайте чашкчку Кофе с сахаром . Сделайте чашечку Кофе, Чая с сливками. Значение по умолчанию должно быть константным выражением. Обратите внимание, что все аргументы, для которых установлены значения по умолчанию, должны находится правее аргументов, для которых значения по умолчанию не заданы, в противном случае ваш код может работать не так, как вы этого ожидаете. Рассмотрим следующий пример: <?php Результат работы приведенного выше скрипта будет примерно следующим: Warning: Missing argument 2 for makecup() in c:\inetpub\php.su\test.php on line 2 Теперь видоизменим рассмотренный скрипт, исправив в нем ошибки: <?php Результат работы исправленного скрипта будет выглядеть следующим образом: Сделайте чашечку чая горячего. Внимание! Начиная с PHP 5, значения по умолчанию могут быть переданны по ссылке! Переменное число аргументов в функциях Иногда мы точно не знаем, сколько параметров будет передано нашей функции. Специально для такого случая разработчики PHP предусмотрели возможность использования переменного числа аргументов. Реализация этой возможности достаточно прозрачна и заключается в использовании функций func_num_args(), func_get_arg() и func_get_args(). Рассмотрим возможности рассмотренных стандартных функций: Стандартная функция func_num_args() возвращает колличество аргументов, переданных пользовательской функции: <?php Стандартная функция func_get_arg() возвращает элемент из списка переданных пользовательской функции аргументов: <?php Стандартная функция func_get_args() возвращает массив аргументов, переданных пользовательской функции: <?php Обратите внимание, что при объявлении пользовательских функций в скобках мы ничего не пишем, то есть, как будто мы не передаем аргументы. По материалам сайта: http://www.php.su/
|



