更少的样板代码来定义并初始化属性。
简介
这个特性,实在说白了便是将原来须要两步(先定义属性,然后在布局器内初始化)的操作变成了一步(直接在布局器参数中定义并初始化)。
实例演示<?php/ 今日头条:技能好奇心 /// 演示类class demo{ public function __construct( public int $a = 3, public int $b = 4 ) { } }// 实例化测试 -- 不传参,检测是否在布局函数内一并定义并初始化了$obj = new demo();echo $obj->a.'-'.$obj->b.PHP_EOL;// 传参测试 -- 正常传参,检测是否能像普通布局函数那样利用$obj2 = new demo(10,11);echo $obj2->a.'-'.$obj2->b.PHP_EOL;// 结合"命名参数"测试 -- 检测合营“命名参数”新特性的效果$obj3 = new demo(b:33);echo $obj3->a.'-'.$obj3->b.PHP_EOL;
运行结果:
从上图可以看出,三个例子全都正常运行了。

命名参数不理解的可以参考:PHP8新特性之命名参数
总结啧啧,又是一个划水摸鱼的好技巧。