PHP 8.2 新特性之 允许 null 和 false 作为独立类型

作者: 温新

分类: 【PHP基础】

阅读: 1682

时间: 2023-02-20 14:16:57

hi,我是温新,一名 PHPer

PHP 8.0 增加了对联合类型的支持,这使得可以将一个类型声明为两个或多个类型的联合。它允许 false 和 null 作为联合类型的可能类型,但不允许它们作为独立的类型使用。

在PHP 8.2 中,将 允许 nullfalse 作为独立类型存在。

< 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,否则会报错。

请登录后再评论