您现在的位置是:首页 > PHP框架交流PHP框架交流
PHP8.0新特性(4) 联合类型
上善若水2024-03-05 09:48:48【PHP框架交流】
717人已围观
简介熟悉PHP8.0的新特性,联合类型,现在定义好联合类型后,创建联合类型不对的时候会抛出异常了。联合类型 相较于以前的 PHPDoc 声明类型的组合, 现在可以用原生支持的联合类型声明取而代之,并在运行
熟悉PHP8.0的新特性,联合类型,现在定义好联合类型后,创建联合类型不对的时候会抛出异常了。
联合类型 相较于以前的 PHPDoc 声明类型的组合, 现在可以用原生支持的联合类型声明取而代之,并在运行时得到校验。
class Number {
public function __construct(
private int|float $number//PHP8.0新特性构造器属性提升写法
) {}
}
1.输入数字
$n = new Number(10); // TypeError
var_dump($n);
#打印结果
class Number#1 (1) {
private int|float $number =>
int(10)
}
2.输入小数
$n = new Number(10); // TypeError
var_dump($n);
#打印结果
class Number#1 (1) {
private int|float $number =>
double(10.5)
}
3.输入带引号的小数
$n = new Number("10.5"); // TypeError
var_dump($n);
#打印结果
class Number#1 (1) {
private int|float $number =>
double(10.5)
}
4.输入带引号的整数
$n = new Number("10"); // TypeError
var_dump($n);
#打印结果
class Number#1 (1) {
private int|float $number =>
int(10)
}
5.输入带非数字的字符串
$n = new Number("10a"); // TypeError
var_dump($n);
打印结果,报错!
Fatal error: Uncaught TypeError: Number::__construct(): Argument #1 ($number) must be of type int|float, string given, called in D:\phpstudy_pro\WWW\testphp8_0\PHP8_0\union_types.php on line 10 and defined in D:\phpstudy_pro\WWW\testphp8_0\PHP8_0\union_types.php on line 5
TypeError: Number::__construct(): Argument #1 ($number) must be of type int|float, string given, called in D:\phpstudy_pro\WWW\testphp8_0\PHP8_0\union_types.php on line 10 in D:\phpstudy_pro\WWW\testphp8_0\PHP8_0\union_types.php on line 5
Tags: PHP8.0
很赞哦! (0)
随机图文
PHP8.2新特性 析取范式 (DNF)类型 允许 null、false 和 true 作为独立类型 Traits 中的常量
PHP8.2新特性析取范式(DNF)类型,DNF类型允许我们组合union和intersection类型,遵循一个严格规则:组合并集和交集类型时,交集类型必须用括号进行分组。1.析取范式PHP8.2新特性 弃用动态属性,更加严谨
PHP8.2新特性弃用动态属性,更加严谨,动态属性的创建已被弃用,以帮助避免错误和拼写错误,除非该类通过使用#[\AllowDynamicProperties]属性来选择。stdClass允许2020.09.07随笔
哈哈哈,论离公司近的好处,晚上意外发现忘记打卡,然后,直接就走到公司附近,打上卡,美滋滋,瞬间又挣了50块钱回来.钉钉还是蛮智能的,都跨天了还能打卡成功,美滋滋.今天又是平淡的一天,码码代码,打打工,java转xml maven扩展包推荐 比XStream与JAXB更好的xml方式
最近在做java转xml时遇到了一些问题,在百度上搜索可用的jar时,首先搜索到的是JAXB放时,这种方式我遇到的两个问题,后来换成XStream,还行,直到我在maven仓库中找到了jackson-