Язык программирования PHP | страница 43
>
>$make = true;
>/* здесь нельзя вызвать Make_event();
>потому что она еще не существует, но можно
>вызвать Save_info() */
>Save_info("Вася","Иванов",
> "Я выбрал курс по PHP");
>if ($make){
>// определение функции Make_event()
> function Make_event(){
Хочу изучать Python> echo "
";
> }
>}
>// теперь можно вызывать Make_event()
>Make_event();
>// определение функции Save_info
>function Save_info($first, $last, $message){
> echo "
$message
";
> echo "Имя: ". $first . " ". $last . "
";
>}
>Save_info("Федя","Федоров",
> "А я выбрал Lisp");
>// Save_info можно вызывать и здесь
>?>
Если функция однажды определена в программе, то переопределить или удалить ее позже нельзя. Несмотря на то, что имена функций нечувствительны к регистру, лучше вызывать функцию по тому же имени, каким она была задана в определении.
>
>/* нельзя сохранить данные, т.е. вызвать
>функцию DataSave() до того, как выполнена
>проверка их правильности, т.е. вызвана
>функция DataCheck() */
>DataCheck();
>DataSave();
>function DataCheck(){
>// проверка правильности данных
> function DataSave(){
> // сохраняем данные
> }
>}
>?>
Рассмотрим подробнее аргументы функций, их назначение и использование.
Аргументы функций
У каждой функции может быть, как мы уже говорили, список аргументов. С помощью этих аргументов в функцию передается различная информация (например, значение числа, факториал которого надо подсчитать). Каждый аргумент представляет собой переменную или константу.
С помощью аргументов данные в функцию можно передавать тремя различными способами. Это передача аргументов по значению (используется по умолчанию), по ссылке и задание значения аргументов по умолчанию. Рассмотрим эти способы подробнее.
Когда аргумент передается в функцию по значению, изменение значения аргумента внутри функции не влияет на его значение вне функции. Чтобы позволить функции изменять ее аргументы, их нужно передавать по ссылке. Для этого в определении функции перед именем аргумента следует написать знак амперсанд «&».
>
>// напишем функцию, которая бы добавляла
>// к строке слово checked
>function add_label(&$data_str){
> $data_str .= "checked";
>}
>$str = "
> // пусть имеется такая строка
>echo $str .">
";
> // выведет элемент формы –
> // не отмеченную радио кнопку
>add_label($str);
> // вызовем функцию
>echo $str .">
";
> // это выведет уже отмеченную
> // радио кнопку
>?>
В функции можно определять значения аргументов, используемые по умолчанию. Само значение по умолчанию должно быть константным выражением, а не переменной и не представителем класса или вызовом другой функции.