您现在的位置是:首页 > PHP框架交流PHP框架交流
PHP8.0新特性(4) 联合类型
上善若水2024-03-05 09:48:48【PHP框架交流】 618人已围观
简介熟悉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)
随机图文
-
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
除了湖北省图书馆,武汉还有这些图书馆
都说上大学是最好的自学时光,这个时候时间充足,学校里面也有图书馆,资源丰富,没课的时候整天都可以泡在图书馆内接受知识的熏陶。只是很多人毕了业才想到要多看看书,可是借书好像就没有那么方便了,毕竟大部分的 -
5个最搞笑儿童笑话:欢迎收听肖邦和贝多芬合奏的东北大秧歌
1.一天,一对父子在收音机旁听音乐。儿子说:'萧邦的曲子真好听。'父亲大叫道:'笨蛋,这明明是贝多芬的交响曲。'就在他们争论不休时,收音机里的播音员说:'您刚才收听到的是东北大秧歌。'2.儿子:'妈,什么叫唯唯诺诺的人?'妈妈:'就是那些从不发表自己的意见,嘴里常说'对,对,对'的人。孩子他爸,我说得对吗?'爸爸:'对,对,对。'儿童笑话3.本地电视一个节目,主持人 -
PHP8.1新特性 显式八进制数字表示法 0o八进制前缀
PHP8.1新特性 显式八进制数字表示法 0o八进制前缀。旧版本 016 === 16; // false 016 === 16; // false because `016` is octal fo