<?php
function should_return_nothing(): void {
return 1; // Fatal error: A void function must not return a value
}
以下两种情况都可以通过验证:
<?php
function lacks_return(): void {
// valid
}
function returns_nothing(): void {
return; // valid
}
定义返回类型为 void 的函数不能有返回值,即使返回 null 也不行:
<?php
function returns_one(): void {
return 1; // Fatal error: A void function must not return a value
}
function returns_null(): void {
return null; // Fatal error: A void function must not return a value
}
此外 void 也只适用于返回类型,并不能用于参数类型声明,或者会触发错误:
<?php
function foobar(void $foo) { // Fatal error: void cannot be used as a parameter type
}
类函数中对于返回类型的声明也不能被子类覆盖,否则会触发错误:
<?php
class Foo
{
public function bar(): void {
}
}
class Foobar extends Foo
{
public function bar(): array { // Fatal error: Declaration of Foobar::bar() must be compatible with Foo::bar(): void
}
}