Функции в PHP
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали, как перебрать массив в php. В данной статье я бы хотел рассказать об одной из важнейших тем — это функции в php. Синтаксис определения функции в общем виде такой:
function myFunction(arg1 = знач1, arg2 = знач2,..., argn = значn) { //тело функции }
Объявление функции начинается с ключевого слова function. Далее идёт название функции (название не зависит от регистра букв). Затем в скобках указываются параметры функции. Параметры могут быть как со значениями (параметры по умолчанию), так и без них. Также в функции могут отсутствовать параметры вовсе. После задания параметров, в квадратных скобках (тело функции) содержится вся логика работы функции, т.е. все операторы.
Если функция должна возвращать какое-то значение, то используется ключевое слово return. Функция также может и ничего не возвращать. В PHP return можно использовать для абсолютно любых объектов. Давайте напишем функцию, которая возвращает куб аргумента:
<?php function cubeNumber($number) { return $number * $number * $number; } echo cubeNumber(3)."</br>"; //выведет 27 echo cubeNumber(4)."</br>"; //выведет 64 ?>
Функцию можно создавать в любом месте программы. Мы можем применять функцию, до того, как она определена. Это возможно из-за того, что в PHP фазы трансляции и исполнения разделены. Злоупотреблять данной возможностью я не советую, поэтому советую объявлять функции всегда в начале, либо в самом начале подключать файл с пользовательскими функциями через инструкцию require_once.
Все переменные, которые описаны в теле функции, являются локальными. Они существуют только в теле функции и перестают существовать после окончания функции. Давайте напишем простой пример:
<?php function addTen($a) { echo "Начальное значение (в функции) = $a </br>"; $a = $a + 10; echo "Конечное значение (в функции) = $a </br>"; } $a = 20; echo "Начальное значение = $a </br>"; addTen($a); echo "Конечное значение = $a"; //выведет также 20, увеличения не будет ?>
Для того, чтобы значение изменилось, необходимо передавать ссылку function addTen(&$a). После этого, в конце мы увидим, что выведено число 30.
Иногда мы не знаем сколько будет параметров у функции. Мы хотим, чтобы количество параметров было любым. Пример: создадим функцию, которая выводит все значения, которые ей были переданы:
<?php function vivod() { foreach (func_get_args() as $value) { echo "$value </br>"; } } vivod("Aleksey", "Ivan", "Olesya"); ?>
Функция func_get_args() возвращает список всех аргументов, указанных при вызове функции.
Напоследок, хотелось бы рассказать о том, что функция может вызывать саму себя. Это называется рекурсией. В качестве примера рекурсии всегда приводят факториал числа (кто не знает, что такое факториал числа можно посмотреть здесь):
<?php function factorial($a) { if ($a <= 1) return 1; return $a * factorial($a - 1); } echo factorial(5); //выведет 120 ?>
Проверить существует ли функция можно с помощью другой функции (тавтология) function_exists(), которая возвращает true, если функция существует:
<?php if (function_exists("rand")) { echo "Такая функция существует"; } ?>
В конце приведу несколько советов по использованию функций:
1) Прежде чем написать функцию, посмотрите документацию, может быть такая функция уже есть.
2) Функция должна быть компактной, она не должна иметь большие размеры. Обычно функция должна быть в 20-30 строк. Где-то ещё слышал, что вся функция должна умещаться на экран
3) Чем меньше своих функций — тем надежнее работает программа, и нужно меньше времени, чтобы её тестировать.
В качестве домашнего задания создайте функцию, которая будет принимать 3 значения и возвращать среднее арифметическое трех чисел.
В данной статье вы узнали, что такое функции на PHP и как их создать.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.