void は、関数が値を返さないことを示す、 戻り値のみで指定できる型ですが、関数自体が終了することはあります。 よって、この型は union 型 の一部として指定することが出来ません。 PHP 7.1.0 以降で利用できます。
戻り値の型が void である関数の中で、式を指定した return 文を書くと、
実行時にその return に到達しない場合でも、
コンパイル時にエラーになります。
return null; と書いた場合も同様です。
関数を途中で抜けるには、式を指定しない return; を使います。
後述の null は、
関数を呼び出したときに暗黙的に得られる値にすぎません。
注意:
(void) による値の破棄
(void) 構文を使うと、式の結果を明示的に破棄できます。
これは、戻り値を無視するのが意図的であることを示すのに便利です。
特に、NoDiscard
アトリビュートが指定された関数やメソッドを呼び出す場合に役立ちます。
他のキャストとは異なり、(void) は値を別の型に変換せず、
値を生成しません。これは文であり、式の一部として使うことはできません。
例1 戻り値を破棄する
<?php
#[\NoDiscard]
function process(): bool {
return true;
}
(void) process(); // 戻り値を明示的に破棄する
?>