Я повинен відредагувати свою відповідь через те, про що я дізнався нещодавно.
Використання @return voidзамість @return nullмає дуже особливе значення, розглянемо наступні два приклади коду PHP.
<?php
function return_never() {
echo "foo";
}
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())) {
var_dump($foo1);
}
if (($foo2 = return_sometimes())) {
var_dump($foo2);
}
Як бачите, він @return voidмає свої варіанти використання, і його слід використовувати, якщо це можливо.
Також зверніть увагу, що це буде частиною майбутнього стандарту PHP PSR-5. [1]
[1] http://www.php-fig.org/psr/
voidі поміщає його в підпис методу в документах.