never is a return-only type indicating the function does not terminate. This means that it either calls exit(), throws an exception, or is an infinite loop. Therefore, it cannot be part of a union type declaration. Available as of PHP 8.1.0.
A return statement in a never function is a
compile-time error, even if the return would not be
reached during execution. If control flow reaches the end of a
never function without exiting, throwing an exception, or
entering an infinite loop, a TypeError is thrown.
never is, in type theory parlance, the bottom type, meaning it is the subtype of every other type and can replace any other return type during inheritance.