die(),exit(),trigger_error()といった処理が打ち切られて、値も返さない関数/メソッドで宣言できる型。
個人的にはあんまり使わなそうな予感。
例えばこんな感じなのだけれども
function never_test():never{
echo 'end code.'.PHP_EOL;
exit();
}
これが値を返したりexit()しない挙動(処理自体は書けてしまう)をしたときエラーになる。
たとえばこの関数だとfalseを引数に与えてexit()しないときに実行時エラーになる。
逆に言えばtrueを渡している限りはエラーにならないので注意が必要。
function never_test(bool $flag):never{
if($flag){
echo 'end code.'.PHP_EOL;
exit();
}
echo 'continue code.'.PHP_EOL;
}
// never_test(false);// Fatal error: Uncaught TypeError: never_test(): never-returning function must not implicitly return
never_test(true);