您现在的位置是:首页 > PHP框架交流PHP框架交流
PHP8.0新特性(4) 联合类型
上善若水2024-03-05 09:48:48【PHP框架交流】 93人已围观
简介熟悉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)
随机图文
-
Jenkins window部署构建拉去php项目
Jenkins window自动完成自动部署拉去项目,点击构建后会自动拉去项目,构建我们的项目代码,两家公司都使用Jenkins管理代码,之前自己未搭建,都是搭建好现成的,自己搭建学习学习。1.Jen -
PHP8.0新特性(1)命名参数 参数的顺序无关
熟悉PHP8.0的新特性,命名参数参数的顺序无关,再传入参数中可以加入参数名称b:20,a:10,作用相当于$a=10,$b=10传参,尽管我们先传入b,但是b:20会正确赋值给$b //1 -
php对象当数组使用 接口ArrayAccess对象下标取值赋值 php进阶
php对象当数组使用,一个对象如果没有实现ArrayAccess结果是无法采用下标的方式去调用赋值和获取值的,目前主流的php框架查询出的集合对象都可以使用数组下标的方式去进行赋值.一个简单的demo -
三态股份2022-04笔试题目
三态股份笔试题目,三态是有笔试题的,这是2022/04/06的笔试题目;https://ks.youkaoshi.cn/doexam/2lopxM7Eoq.html1. 运行以下代码将显示什么?(