Функции в PHP

Функции в 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 строк. Где-то ещё слышал, что вся функция должна умещаться на экран smile

3) Чем меньше своих функций — тем надежнее работает программа, и нужно меньше времени, чтобы её тестировать.

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

В данной статье вы узнали, что такое функции на PHP и как их создать.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *