Простое 'Возвращается' в функции PHP, просто заканчивают функцию преждевременно?

svnadmin setlog /path/to/repository -r revision_number --bypass-hooks message_file.txt
9
задан alex 24 May 2016 в 13:45
поделиться

5 ответов

function text($var) 

{

    if ( ! $var) {
        return;
    }
    do_something();

}

$var = text('');

echo gettype($var);
echo is_bool($var) ? "true" : "false";
echo is_string($var) ? "true" : "false";
echo is_null($var) ? "true" : "false";

возвращает:

NULL ложный ложный правда

12
ответ дан 4 December 2019 в 07:04
поделиться

PHP динамически типизирован, поэтому возврат без значения эквивалентен возврату нулевого значения любого типа.

10
ответ дан 4 December 2019 в 07:04
поделиться

Возврат без значения возвращает null.

Дополнительная информация из руководства:

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

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

5
ответ дан 4 December 2019 в 07:04
поделиться

Да, « return; » или return (); в функции прекращает выполнение этой функции (или файла, если оператор return не входит в функцию) в этот момент (если код выполняется) и технически возвращает нулевое значение.

Ваш первый пример будет выводить 'HTTP / 1.1 403 Forbidden ', а затем завершить эту функцию, если request :: is_ajax () равен true.

В вашем примере кода:

function text($var) 
{

    if ( ! $var) {
        return;
    }
    do_something();

}
$var = text('');

Вы можете получить следующие результаты:

  • Если $ var НЕ ИСТИНА (т. Е. False, null, текст или целое число), тогда выйдите из функции и верните null.
  • Если $ var ИСТИНА ИСТИНА (оператор if проверяет, имеет ли значение $ var что-либо, кроме истины) ), затем запустите do_something ();

Я подозреваю, что вы, вероятно, захотите изменить оператор if на:

if (!is_string($var)) {

, если вы просто хотите преобразовать do_something () в строку, или

if (is_null($var)) {

, если вы хотите только do_something ( ) в $ var, если он установлен. Вы также можете изменить объявление функции на:

if (!is_string($var)) {

, если вы просто хотите do_something () для строки или

if (is_null($var)) {

, если вы хотите do_something () только для $ var, если он установлен. Вы также можете изменить объявление функции на:

if (!is_string($var)) {

, если вы просто хотите do_something () для строки или

if (is_null($var)) {

, если вы хотите do_something () только для $ var, если он установлен. Вы также можете изменить объявление функции на: функциональный текст ($ var == NULL) { поэтому, если вы вызываете текст без параметра, $ var автоматически устанавливается в null.

3
ответ дан 4 December 2019 в 07:04
поделиться

Краткий ответ. Он просто завершает функцию, что очень похоже на функцию без оператора возврата. Ничего не возвращается, функция просто завершается.

Во втором примере $ var would = ничего.

Почему бы не выполнить это и не посмотреть?

2
ответ дан 4 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: