PHP 8.4.0 RC4 available for testing

Never

never は、 関数が戻ってこないことを示す戻り値の型です。 これは、関数の中で exit() がコールされるか、 例外がスローされるか、 無限ループに入るかのいずれかであることを意味します。 よって、この型は union 型 の一部として指定することが出来ません。 PHP 8.1.0 以降で利用できます。

never は、 型理論の用語で言うと、ボトム型にあたります。 つまり、全ての他の型の部分型であり、 継承する際に他の戻り値の型を置き換えることができます。

add a note

User Contributed Notes 2 notes

up
21
ali1289445 at gmail dot com
1 year ago
<?php

function sayHello(string $name): never
{
echo
"Hello, $name";
exit();
// if we comment this line, php throws fatal error
}

sayHello("John"); // result: "Hello, John"
up
1
dcfynn at icloud dot com
24 days ago
I think the description should be corrected from return-only to non-return function since the context is now misleading
To Top