Php return что это

return

return возвращает управление программой вызывающему модулю. Выполнение возобновляется с выражения, следующего за вызовом вызываемого модуля.

При вызове из функции оператор return немедленно завершает выполнение текущей функции и возвращает свой аргумент как значение вызова функции. return также завершает выполнение оператора eval () или файла сценария.

Если вызывается из глобальной области видимости, выполнение текущего файла сценария завершается. Если текущий файл сценария был include d или require d, то управление передается обратно вызывающему файлу. Более того, если текущий файл сценария был include d, то значение, переданное для return , будет возвращено как значение вызова include . Если return вызывается из основного файла сценария, выполнение сценария завершается. Если текущий файл сценария был назван параметрами конфигурации auto_prepend_file или auto_append_file в php.ini , то выполнение этого файла сценария прекращается.

Для получения дополнительной информации см. Возврат значений .

Примечание . Обратите внимание, что, поскольку return — это языковая конструкция, а не функция, круглые скобки, окружающие его аргумент, не требуются, и их использование не рекомендуется.

Примечание . Если параметр не указан, скобки необходимо опустить, и будет возвращено значение null . Вызов return с круглыми скобками, но без аргументов приведет к ошибке синтаксического анализа.

Начиная с PHP 7.1.0, операторы возврата без аргумента запускают E_COMPILE_ERROR , если тип возврата не является void, и в этом случае операторы возврата с аргументом вызывают эту ошибку.

PHP 8.2

(PHP 5,7,8)restore_exception_handler Восстанавливает ранее определенную функцию Используется после изменения функции обработчика исключений с помощью set_exception_handler(),

(PHP 4 4.3.0,5,7)restore_include_path Восстанавливает значение параметра конфигурации Эта функция была УДАЛЕНА в PHP 7.4.0,и УДАЛЕНА в 8.0.0.

(PHP 4,5,7,8)перемотка позиции указателя файла Устанавливает указатель позиции файла для начала потока Примечание:Если вы открыли файл в режиме append

(PHP 4,5,7,8)rewinddir directory handle Сброс потока каталогов,на который указывает dir_handle начало ресурса Directory handle,открытого ранее

Источник

return

return возвращает управление программой в вызывавший модуль. Выполнение возвращается в выражение, следующее после вызова текущего модуля.

Если вызвано из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. return также завершает выполнение выражения eval() или всего файла скрипта.

Если вызывается из глобальной области видимости, выполнение текущего файла скрипта прекращается. Если текущий файл скрипта был подключен с помощью функций include или require , тогда управление возвращается к файлу, который вызывал текущий. Более того, если текущий файл скрипта был подключен с помощью include , тогда значение переданное return будет возвращено в качестве значения вызова include . Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается. Если текущий файл скрипта был вызван конфигурационными опциями auto_prepend_file или auto_append_file из файла настроек php.ini , тогда выполнение этого скрипта прекращается.

Для более детальной информации смотрите раздел Возвращаемые значения.

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

Замечание: Если параметры не указаны, тогда круглые скобки должны быть опущены, и вернется значение NULL . Вызов return со скобками, но без аргументов вызовет синтаксическую ошибку.

Замечание: Вы не должны использовать скобки при возврате переменной, если возвращаете по ссылке, так как это не сработает. Вы можете вернуть только переменную по ссылке, а не результат выражения. Если вы используете return ($a);, тогда вы вернете не переменную, а результат выражения ($a) (который, естественно, будет являться значением переменной $a ).

Источник

Php return что это

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

Если вызывается из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. return также завершит выполнение выражения eval() или всего файла скрипта.

Если вызывается из глобальной области видимости, выполнение текущего файла скрипта прекращается. Если текущий файл скрипта был подключён с помощью функций include или require , тогда управление возвращается к файлу, который вызывал текущий. Более того, если текущий файл скрипта был подключён с помощью include , тогда значение переданное return будет возвращено в качестве значения вызова include . Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается. Если текущий файл скрипта был вызван конфигурационными опциями auto_prepend_file или auto_append_file из файла настроек php.ini , тогда выполнение этого скрипта прекращается.

Для более детальной информации смотрите раздел Возвращаемые значения.

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

Замечание: Если параметры не указаны, тогда круглые скобки должны быть опущены и будет возвращён null . Вызов return со скобками, но без аргументов вызовет синтаксическую ошибку.

Начиная с PHP 7.1.0, операторы возврата без аргумента в функциях, объявляющих тип возврата, вызывают E_COMPILE_ERROR , если только тип возврата не void , в этом случае такую же ошибку вызывают операторы возврата с аргументом.

Источник

Php return что это

Значения возвращаются при помощи необязательного оператора возврата. Возвращаемые значения могут быть любого типа, в том числе это могут быть массивы и объекты. Возврат приводит к завершению выполнения функции и передаче управления обратно к той строке кода, в которой данная функция была вызвана. Для получения более детальной информации ознакомьтесь с описанием return .

Замечание:

Если конструкция return не указана, то функция вернёт значение null .

Использование выражения return

Пример #1 Использование конструкции return

Функция не может возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив.

Пример #2 Возврат нескольких значений в виде массива

function small_numbers ()
return [ 0 , 1 , 2 ];
>
// Деструктуризация массива будет собирать каждый элемент массива индивидуально
[ $zero , $one , $two ] = small_numbers ();

// До версии 7.1.0 единственной эквивалентной альтернативой было использование конструкции list().
list( $zero , $one , $two ) = small_numbers ();

Для того, чтобы функция возвращала результат по ссылке, вам необходимо использовать оператор & и при описании функции, и при присвоении переменной возвращаемого значения:

Пример #3 Возврат результата по ссылке

Для получения более детальной информации о ссылках обратитесь к разделу документации Подробно о ссылках.

User Contributed Notes 10 notes

PHP 7.1 allows for void and null return types by preceding the type declaration with a ? — (e.g. function canReturnNullorString(): ?string)

However resource is not allowed as a return type:

function fileOpen ( string $fileName , string $mode ): resource
$handle = fopen ( $fileName , $mode );
if ( $handle !== false )
return $handle ;
>
>

$resourceHandle = fileOpen ( «myfile.txt» , «r» );
?>

Errors with:
Fatal error: Uncaught TypeError: Return value of fileOpen() must be an instance of resource, resource returned.

Developers with a C background may expect pass by reference semantics for arrays. It may be surprising that pass by value is used for arrays just like scalars. Objects are implicitly passed by reference.

# (1) Objects are always passed by reference and returned by reference

function obj_inc_x ( $obj ) $obj -> x ++;
return $obj ;
>

$obj2 = obj_inc_x ( $obj );
obj_inc_x ( $obj2 );

print $obj -> x . ‘, ‘ . $obj2 -> x . «\n» ;

# (2) Scalars are not passed by reference or returned as such

function scalar_inc_x ( $x ) $x ++;
return $x ;
>

$x2 = scalar_inc_x ( $x );
scalar_inc_x ( $x2 );

# (3) You have to force pass by reference and return by reference on scalars

$x2 =& scalar_ref_inc_x ( $x ); # Need reference here as well as the function sig
scalar_ref_inc_x ( $x2 );

# (4) Arrays use pass by value sematics just like scalars

function array_inc_x ( $array ) $array < 'x' >++;
return $array ;
>

$array = array();
$array [ ‘x’ ] = 1 ;

$array2 = array_inc_x ( $array );
array_inc_x ( $array2 );

print $array [ ‘x’ ] . ‘, ‘ . $array2 [ ‘x’ ] . «\n» ;

# (5) You have to force pass by reference and return by reference on arrays

$array = array();
$array [ ‘x’ ] = 1 ;

$array2 =& array_ref_inc_x ( $array ); # Need reference here as well as the function sig
array_ref_inc_x ( $array2 );

print $array [ ‘x’ ] . ‘, ‘ . $array2 [ ‘x’ ] . «\n» ;

Be careful about using «do this thing or die()» logic in your return lines. It doesn’t work as you’d expect:

function myfunc1 () return( ‘thingy’ or die( ‘otherthingy’ ));
>
function myfunc2 () return ‘thingy’ or die( ‘otherthingy’ );
>
function myfunc3 () return( ‘thingy’ ) or die( ‘otherthingy’ );
>
function myfunc4 () return ‘thingy’ or ‘otherthingy’ ;
>
function myfunc5 () $x = ‘thingy’ or ‘otherthingy’ ; return $x ;
>
echo myfunc1 (). «\n» . myfunc2 (). «\n» . myfunc3 (). «\n» . myfunc4 (). «\n» . myfunc5 (). «\n» ;
?>

Only myfunc5() returns ‘thingy’ — the rest return 1.

With 7.1, these are possible yet;

function ret_void (): void // do something but no return any value
// if needs to break fn exec for any reason simply write return;
if (. ) return; // break
// return null; // even this NO!
>

$db -> doSomething ();
// no need return call anymore
>

function ret_nullable () ? int if (. ) return 123 ;
> else return null ; // MUST!
>
>
?>

Functions which return references, may return a NULL value. This is inconsistent with the fact that function parameters passed by reference can’t be passed as NULL (or in fact anything which isnt a variable).

if ( testRet () === NULL )
echo «NULL» ;
>
?>

parses fine and echoes NULL

PHP 7 return types if specified can not return a null.
For example:
declare( strict_types = 1 );

function add2ints ( int $x , int $y ): int
$z = $x + $y ;
if ( $z === 0 )
return null ;
>
return $z ;
>
$a = add2ints ( 3 , 4 );
echo is_null ( $a ) ? ‘Null’ : $a ;
$b = add2ints (- 2 , 2 );
echo is_null ( $b ) ? ‘Null’ : $b ;
exit();

Output :
7
Process finished with exit code 139

Be careful when introducing return types to your code.

Only one return type can be specified (but prefacing with ? allows null).

Return values of a type different to that specified are silently converted with sometimes perplexing results. These can be tedious to find and will need rewriting, along with calling code.

Declare strict types using «declare(strict_types=1);» and an error will be generated, saving much head-scratching.

You may specify child return type if there is no parent:

class A public function f ( $a )
return 1 ;
>
>

class B extends A public function f ( $a ): int // + return type, OK
return 1 ;
>
>

class C extends A public function f ( int $a ) // + argument type, WARNING
return 1 ;
>
>
?>

Note: the function does not have «alternative syntax» as if/endif, while/endwhile, and colon (:) here is used to define returning type and not to mark where the block statement begins.

Declaring a collection of objects as return type is not implemented and forbidden:
class Child <>

function getChilds (): Child [] return [(new Child ()), (new Child ())];
>

var_dump ( getChilds ());
// Returns: Parse error: syntax error, unexpected ‘[‘, expecting ‘ ?>

We have to use:
class Child <>

function getChilds (): array
return [(new Child ()), (new Child ())];
>

var_dump ( getChilds ());
// Returns:
/*
array (size=2)
0 =>
object(Child)[168]
1 =>
object(Child)[398]*/
?>

Idem for function parameter:
function setChilds ( Child [] $childs )<>
// Not allowed

function setChilds (array $childs )<>
// Allowed
?>

Источник

Читайте также:  Image source code in css
Оцените статью