За internals не успеть в последнее время! Вот уже на голосование вышел RFC от Tim Düsterhus и Volker Dusch. Они предлагают добавить в PHP атрибут
#[NoDiscard] — им можно будет пометить функции и методы, возвращаемое значение которых не стоит игнорировать. Например, вот такой код будет кидать E_WARNING, если RFC примут:
$date = new DateTimeImmutable('2024-1-1');
$date->setDate(2025, 1, 1); // E_WARNING
echo $date->format('Y'); // 2024
Возвращаемое значение считается использованным, если оно участвует в выражении или присваивании. Чтобы избежать предупреждения и явно в коде обозначить намерение не использовать результат вызова функции с
#[NoDiscard], авторы RFC предлагают добавить (void) каст. Он превратит выражение в инструкцию:
flock($stream, LOCK_EX); // E_WARNING
(void) flock($stream, LOCK_EX); // OK
if ((void) flock($stream, LOCK_EX)) {} // Parse error
Использование
#[NoDiscard] в функциях и методах, возвращающих void, never, а также в магических методах и хуках свойств приведёт к фатальной ошибке на этапе интерпретации.По мнению авторов, этот атрибут будет полезен для функций с сайд-эффектами, которые при этом ещё что-то возвращают, например, ошибки.
https://wiki.php.net/rfc/marking_return_value_as_important