<?php
function sayHello(string $name): never
{
echo "Hello, $name";
exit(); // 如果我们注释掉这行,php 会抛出致命错误
}
sayHello("John"); // 结果:“Hello, John”
never 是一种仅返回值类型,指示函数不会终止。这意味着它要么调用 exit(),要么抛出异常,要么是无限循环。因此,它不能成为 联合类型 声明的一部分。从 PHP 8.1.0 开始可用。
never 在类型理论术语中是底类型。这意味着它是所有其他类型的子类型,并且可以在继承期间替换任何其他返回类型。
<?php
function sayHello(string $name): never
{
echo "Hello, $name";
exit(); // 如果我们注释掉这行,php 会抛出致命错误
}
sayHello("John"); // 结果:“Hello, John”