Эти функции разрабатываются самим программистом в процессе написания кода. Синтаксис определения таких функций в общем виде выглядит так:
function имя_функции (аргумент1, аргумент2 и так далее) { операции, выполняемые при вызове функции;} |
Имя функции – оригинальный идентификатор, может содержать все буквы латинского алфавита, числа и знак подчеркивания. Нужно следить, чтобы имя вашей функции не совпадало с зарезервированной функцией PHP, иначе программа выведет ошибку. Имя функции, в отличие от имени переменной, нечувствительно к регистру.
Аргументами функции могут являться переменные и/или константы. Это те значения, которые будут использоваться командами в теле функции.
Внутри функции может быть любой верный PHP код, включая функции.
Пример определения функции:
function sum($a, $b){
$c = $a + $b;
echo "$a + $b = $c <br>";
return $c;
}
Конструкция return аргумент заставляет данную функцию возвращать после своего выполнения значение аргумента. Посмотрим пример использования вышеуказанной функции:
|
|
$a = sum(12, 5);
echo $a;
Этот код выведет:
12 + 5 = 17
В этом примере переменной $a присвоилось значение, возвращенное функцией sum (т.е. значение $c). Если не указать в определении функции return $c, то пример выше выведет только 12 + 5 = 17.
Нужно учесть, что все переменные внутри функции являются локальными, действующими только в теле функции. Поэтому в примере выше не было ошибкой строка $a = sum(12, 5);, где в функции sum() уже есть своя переменная $a. Эти переменные никак не пересекаются и имеют совершенно разное значение.
Для того, чтобы переменная, определенная внутри функции, действовала вне ее пределов, необходимо указать, что она является глобальной. Это делается следующим образом:
function word ($word){
//функция word() и переменная $word – разные вещи
global $string; //определение $string как глобальной
$string = $word." – отличная вещь!";}
word ("PHP");
echo $string; //выведет "PHP – отличная вещь!"
Как видино, здесь не применяется return, так что функция ничего не возвращает, но переменная $string определена как глобальная, поэтому она действует в пределах всего кода PHP, и в данном случае $string в функции равна $string вне функции.
Функция после своего выполнения теряет все свои значения и при ее новом вызове нельзя использовать данные, полученные при предыдущем выполнении функции.
Следует заметить, что в некоторых случаях нужно передавать в качестве аргумента функции одно и то же значение. В этом случае в определении функции можно указать аргумент функции по умолчанию. Тогда, если при вызове функции аргумент не указан, то будет использоваться это значение по умолчанию.