html.okpython.net
HTML и CSS для начинающих

PHP :: Возврат значения функцией

Оператор return в PHP

Довольно часто при вызове функции она не только выполняет указанный фрагмент программного кода, но и возвращает некоторое значение, которое является результатом ее работы. Осуществляется операция возврата при помощи необязательного оператора return, который немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. При этом оператор return может быть расположен в любом месте функции и, когда до него доходит управление, функция возвращает значение и завершает свое выполнение, передавая управление обратно к той строке кода, в которой данная функция была вызвана. Если оператор return не указан или не указано возвращаемое им значение, то функция вернет значение NULL (см. пример №1).

PHP Результат htmlCodes
<?php

//Создаем функцию, принимающую два аргумента
function m_sum($a_1,$a_2){  
	//Вычисляем сумму и присваиваем переменной
	$sum = $a_1+$a_2;   		 
	//Возвращаем сумму в качестве значения функции 
	return  $sum;       		 
	
	//Эта инструкция выполнена не будет, т.к.
	//находится после оператора return
	$sum=100;       			 	  
} 

//Выведет 15
echo m_sum(5,10); 			 	 

?>

Пример №1. Возврат значений функции

Так как оператор return является языковой конструкцией, а не функцией, то использовать круглые скобки не нужно, иначе это может привести к нежелательным эффектам.

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

В PHP функции не могут возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив (см. пример №2).

PHP Результат htmlCodes
<?php

//Используем список аргументов переменной длины
function m_sum(...$sum){ 	   
	//Задаем стартовое значение счетчика
	$i=0; 										 
	//Перебираем все значения массива аргументов
	foreach($sum as $value){   
		//Помещаем аргументы функции в массив
		$new_array[$i]=$value;   
		//Увеличиваем значение счетчика на единицу
		$i+=1;									 
	}
	//Возвращаем полученный массив
	return $new_array;       	 
}
 
//Выведет второй элемент массива, т.е. 10
echo m_sum(5,10,15,20)[1]; 	 

/* Таким образом, данная функция принимает аргументы, помещает их в массив и 
затем возвращает этот массив в качестве своего значения */

?>

Пример №2. Возврат значения функции в виде массива значений

Объявление типа возвращаемого значения функции

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

Указывается тип возвращаемого значения при объявлении функции после круглых скобок с параметрами и двоеточия перед открывающей скобкой тела функции (см. пример №3).

PHP Результат htmlCodes
<?php

//Задаем режим строгой типизации для скрипта
declare(strict_types=1);  

//Задали тип string возвращаемого значения
function my_sum(int $a,int $b): string{  
	$sum=$a+$b; 
	//Возвращаемое значение должно быть типа string
	return  $sum;       		  
}
 
//При вызове функции выведет ошибку
echo my_sum(5,2);   			 
								
/* Напомним, что исключение составляет передача значения целочисленного 
типа функции, которая ожидает получить значение типа float. */		  

?>

Пример №3. Объявление типа возвращаемого функцией значения

Быстрый переход к другим страницам