Язык программирования PHP | страница 43




>

>$make = true;

>/* здесь нельзя вызвать Make_event();

>потому что она еще не существует, но можно

>вызвать Save_info() */

>Save_info("Вася","Иванов",

> "Я выбрал курс по PHP");

>if ($make){

>// определение функции Make_event()

> function Make_event(){

> echo "

Хочу изучать Python
";

> }

>}

>// теперь можно вызывать 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 .">
";

> // это выведет уже отмеченную

> // радио кнопку

>?>


В функции можно определять значения аргументов, используемые по умолчанию. Само значение по умолчанию должно быть константным выражением, а не переменной и не представителем класса или вызовом другой функции.