PHP 8.2 新特性之 允许 null 和 false 作为独立类型
hi,我是温新,一名 PHPer
PHP 8.0 增加了对联合类型的支持,这使得可以将一个类型声明为两个或多个类型的联合。它允许 false 和 null 作为联合类型的可能类型,但不允许它们作为独立的类型使用。
在PHP 8.2 中,将 允许 null
和 false
作为独立类型存在。
< PHP 8.2 版本
在 PHP 8.2 之前,只能使用 null 和 false 作为联合类型的一部分。
function foo(): string|null {}
function strpos(): int|false {}
PHP 8.2 null false
1、基础使用
<php
// 返回 null
function foo_null():null {
return null;
}
// 返回 fasle
function foo_false():null {
return null;
}
// 联合类型返回
function foo_null_or_false():null|false {
return null;
}
2、参数类型限制
<?php
// true 限制参数类型
function is_boo(true $value):true {
var_dump($value);
}
is_boo(true); // 正确
is_boo(1); // 报错 Fatal error: Uncaught TypeError: is_boo(): Argument #1 ($value) must be of type true, int given, called in
如果使用 true
对参数进行了限制,那么传递的参数必须是 true
,否则会报错。
请登录后再评论