belarusweb.net
© Петр Романовский Минск, 2016-2017.



belarusweb.net

Основы создания сайтов...

PHP+MySQL >>>

                          Учебник Задачник Справочник

5.1. Понятие функции и ее синтаксис

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

Функция – это блок программного кода на языке PHP, который определяется один раз и далее может быть использован многократно.

Рассмотрим создание функции на примере 5.1.

<?php
$n_1=5;  //Присвоили первой переменной значение
$n_2=10; //Присвоили второй переменной значение

function my_func($arg_1, $arg_2) {  //Объявили функцию с 2 аргументами 
	$sum = $arg_1+$arg_2; 
	return  $sum;      	 //Значение возвращаемое функцией при ее вызове 
} 
echo my_func($n_1,$n_2); //Вызываем функцию и выводим ее значение, т.е. 15


/* Условно объявление функции и ее вызов можно представить так */

/* function my_func($arg_1, $arg_2, ..., $arg_n){ 
	  'исполняемый код'
	  return 'возвращаемое значение'; 
	}

	my_func($arg_1, $arg_2, ...);  */
?>

Пример 5.1. Создание функций в PHP

Таким образом, чтобы объявить функцию, необходимо использовать ключевое слово function, затем указать имя функции, после чего в круглых скобках перечислить принимаемые аргументы, и при помощи фигурных скобок сформировать тело функции.

Имена функций в PHP являются регистронезависимыми (в отличие от имен переменных), но следуют тем же правилам, что и другие идентификаторы, т.е. корректное имя функции должно начинаться с буквы или знака подчеркивания, за которым может следовать любое количество букв, цифр или знаков подчеркивания. Об аргументах мы поговорим чуть ниже, а что касается тела функции, то в нем можно использовать любой корректный php-код, включая другие функции и объявления классов. При этом, если оператор return отсутствует, то функция не имеет возвращаемого значения. Она просто выполняет указанный кусок программного кода.

Следует отметить, что в PHP объявления функций поднимаются в начало кода скрипта, поэтому их разрешается использовать еще до момента определения за исключением случаев, когда функции объявляются условно или внутри других функций и, как следствие, должны быть определены до момента их вызова (см. пример 5.2).

<?php
$n_1=5; 	//Присвоили первой переменной значение
$n_2=10; //Присвоили второй переменной значение

//echo my_func($n_1,$n_2); //Выведет ошибку, т.к. функция определяется условно 
							  	   //и вызывается до ее объявления 
if($n_1<=$n_2){ 
	function my_func($arg_1,$arg_2) { //Объявили функцию внутри 
		$sum = $arg_1+$arg_2; 		    //условного оператора 
		return  $sum;      //Значение возвращаемое функцией при ее вызове 
	} 
}	
echo my_func($n_1,$n_2).'<br>'; //Выведет 15, т.к. условие истинно и 
										  //функция была определена

/* В случае, если бы условие оператора if (например, при $arg_1>$arg_2) не 
выполнилось, то и последний вызов функции также вызвал бы ошибку, поскольку 
функция не была бы определена */

function func_out(){ 		//Объявили внешнюю функцию
	
	function my_func_2($arg_1, $arg_2){ //Объявили функцию внутри другой функции 
		$mult = $arg_1*$arg_2; 
		return  $mult;       //Значение возвращаемое функцией при ее вызове 
	} 
}	
//echo my_func_2($n_1,$n_2); //Выведет ошибку, т.к. функция вызывается до вызова 
								     //внешней функции, когда она еще не была определена 

func_out(); //Вызвали внешнюю функцию, теперь определена и вложенная функция
echo my_func_2($n_1,$n_2); //Выведет 50
?>

Пример 5.2. Условное объявление функций

Добавим, что:

<?php
function recursion($a){//Определяем рекурсивную функцию
   if($a<20){
     echo "$a";
     recursion($a+1);  //Вызываем саму функцию
   }
}
recursion(1); 			  //Выведет 12345678910111213141516171819
?>

Пример 5.3. Использование рекурсивных функций

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

Контрольные вопросы и задания

  1. Что в программировании называют функцией?
  2. Опишите синтаксис создания пользовательских функций в PHP.
  3. Перечислите особенности функций в PHP.

Словарь новых английских слов

function [ˈfʌŋ(k)ʃ(ə)n] – функция.
return [rɪˈtəːn] – возвращать.
argument [ˈɑːɡjʊm(ə)nt] – аргумент.
closure [ˈkləʊʒə] – замыкание.
Комментарии (0)
Петр Романовский
1. Приветствуются комментарии, которые содержат дополнения к материалу текущей страницы, а также ваши ответы на вопросы других пользователей.
2. Если вам что-то непонятно - спрашивайте, не забывая написать, что именно и с какого места.
Показаны все комментарии
Чтобы оставить свой комментарий, авторизуйтесь, пожалуйста!    
     
belarusweb.net © Петр Романовский, Минск, 2016-2017.
Связаться с автором
Наверх