Подтвердить что ты не робот

Если функция использует: return null;?

Если функция возвращает null?

например.

function test()
{
    return null; // vs return;
}

Является ли последнее плохой практикой или не имеет значения?

PS

Является ли это плохой практикой, не должно быть субъективным ИМХО.

4b9b3361

Ответ 1

Если вы ничего не вернете, просто используйте return; или опустите его вообще в конце функции.
Если ваша функция обычно возвращает что-то, но не по какой-либо причине, return null; - это путь.

Это похоже на то, как вы это делаете, например. в C: Если ваша функция не возвращает вещи, она void, в противном случае она часто возвращает либо действительный указатель, либо NULL.

Ответ 2

Всегда хорошая практика, чтобы показать, что вы возвращаете.

Но в качестве подсказки все эквивалентны:

function test()
{
    return null;
}


function test()
{
    return;
}


function test()
{

}

Во всех случаях для var_dump(test()); будет:

NULL

Ответ 3

Значение возвращаемой функции undefined в PHP всегда равно NULL, поэтому это не имеет никакого значения (время выполнения делает это).

Что имеет значение, так это то, что вы используете docblocks и документируете возвращаемое значение с тегом @return, поэтому здесь есть умная информация о IDE.

Если вы хотите сигнализировать на док-блок, что не возвращается значение, вы можете использовать void:

 * @return void

Если вы хотите сообщить, что для возврата NULL вы можете использовать NULL или NULL (в зависимости от вашего стиля кода для стандартных констант PHP):

 * @return null

или

 * @return null

Это должно сделать видимость кодеров видимой, так как PHP это всегда будет NULL как фактическое возвращаемое значение.

Читайте дальше:

Более подробная информация и обновленная информация в PeeHaa отвечают на этот же вопрос.

Ответ 4

Просто глупо возвращать null, если ничего не вернуть. Выполнение return; показывает, что на самом деле ничего не возвращает. И дает понять, что делает функция.

Тот факт, что PHP не имеет типа возврата void еще не должен быть причиной, чтобы сделать наступление менее ясным. Также обратите внимание, что PHP 7.1 обеспечит поддержку типа возврата void:

function test(): void {
    return null; // this will error
}

Ответ 5

Семантически, я не думаю, что есть разница между ними. Согласно документации PHP по возврату:

Если параметр не указан, то круглые скобки должны быть опущены и NULL будет возвращен.

Мне лично нравится помещать туда NULL. Тогда нет вопроса о том, что возвращается, что облегчает вашу отладку.

Ответ 6

Страница лучших практик PEAR делает return null в своем примере "Return early". Это повышает читаемость, которую мы всегда должны стараться делать, поскольку мы пишем код для людей, а не компьютеров.

источник: http://pear.php.net/manual/en/standards.bestpractices.php

Ответ 7

Когда вы используете декларации возвращаемого типа с префиксом nullable "?" есть разница!

Документация PHP говорит...

Начиная с PHP 7.1.0, возвращаемые значения могут быть помечены как обнуляемые, если перед именем типа ставить знак вопроса (?). Это означает, что функция возвращает либо указанный тип, либо NULL.

Таким образом, когда вы ничего не возвращаете, сообщение об ошибке будет:

Fatal error: Uncaught TypeError: Return value of test() must be of the type string or null, none returned in...

И когда вы вернетесь, return; сообщение об ошибке будет:

Fatal error: A function with return type must return a value (did you mean "return null;" instead of "return;"?) in...

Когда вы возвращаете null, все в порядке.

Смотрите https://3v4l.org/5NTvg