Язык программирования PHP | страница 42
Функция вычисления факториала натурального числа
>
>function fact($n){
> if ($n==0) return 1;
> else return $fact = $n * fact($n-1);
>}
>echo fact(3);
> // можно было бы написать echo (3*2);
> // но если число большое,
>echo fact(50);
> // то удобнее пользоваться функцией,
> // чем писать echo (50*49*48*...*3*2);
>?>
Таким образом, когда мы осуществляем действия, в которых прослеживается зависимость от каких-то данных, и при этом, возможно, нам понадобится выполнять такие же действия, но с другими исходными данными, удобно использовать механизм функций – оформить блок действий в виде тела функции, а меняющиеся данные – в качестве ее параметров.
Посмотрим, как в общем виде выглядит задание (объявление) функции. Функция может быть определена с помощью следующего синтаксиса:
>function Имя_функции (параметр1, параметр2,
> ... параметрN){
> Блок_действий
> return "значение возвращаемое функцией";
>}
Если прямо так написать в php-программе, то работать ничего не будет. Во-первых, Имя_функции и имена параметров функции (параметр1, параметр2 и т.д.) должны соответствовать правилам наименования в PHP (и русских символов в них лучше не использовать). Имена функций нечувствительны к регистру. Во-вторых, параметры функции – это переменные языка, поэтому перед названием каждого из них должен стоять знак $. Никаких троеточий ставить в списке параметров нельзя. В-третьих, вместо слов блок_действий в теле функции должен находиться любой правильный PHP-код (не обязательно зависящий от параметров). И наконец, после ключевого слова return должно идти корректное php-выражение (что-либо, что имеет значение). Кроме того, у функции может и не быть параметров, как и возвращаемого значения. Пример правильного объявления функции – функция вычисления факториала, приведенная выше.
Как происходит вызов функции? Указывается имя функции и в круглых скобках список значений ее параметров, если таковые имеются:
>
>Имя_функции ("значение_для_параметра1",
> "значение_для_параметра2",...);
>// пример вызова функции – вызов функции
>// вычисления факториала приведен выше,
>// там для вычисления факториала числа 3
>// мы писали: fact(3);
>// где fact – имя вызываемой функции,
>// а 3 – значение ее параметра с именем $n
>?>
Когда можно вызывать функцию? Казалось бы, странный вопрос. Функцию можно вызвать после ее определения, т.е. в любой строке программы ниже блока function f_name(){...}. В PHP3 это было действительно так. Но уже в PHP4 такого требования нет. Все дело в том, как интерпретатор обрабатывает получаемый код. Единственное исключение составляют функции, определяемые условно (внутри условных операторов или других функций). Когда функция определяется таким образом, ее определение должно предшествовать ее вызову.