Я должен отредактировать свой ответ из-за того, что недавно узнал.
Использование @return void
вместо @return null
имеет особое значение, рассмотрим следующие два примера кода PHP.
<?php
/**
* @return void
*/
function return_never() {
echo "foo";
}
/**
* @return null|string
*/
function return_sometimes() {
if ($this->condition()) {
return "foo";
}
}
В первом примере PHP фактически вернет NULL
, поскольку PHP всегда возвращает NULL
. Но возвращаемое значение бесполезно для вызывающей стороны, так как оно ничего не говорит о том, что сделала функция. IDE могут использовать документированную информацию @return void
, чтобы указать разработчику, что используются возвращаемые значения, которые не имеют смысла.
<?php
$foo1 = return_never();
$foo2 = return_sometimes();
Первый вызов не имеет смысла, так как переменная всегда будет содержать NULL
, второй может действительно содержать что-то. Это становится еще интереснее, если мы поместим вызовы функций в условные выражения.
<?php
if (($foo1 = return_never())) {
// Dead code
var_dump($foo1);
}
if (($foo2 = return_sometimes())) {
var_dump($foo2);
}
Как видите, @return void
имеет свои варианты использования и должен использоваться, если применимо.
Также обратите внимание, что он станет частью будущего стандарта PHP PSR-5. [1]
[1] http://www.php -fig.org / psr /