本文给大家带来php8 新特性解读和示例,希望对需要的朋友有所帮助!
PHP8.0 新特性解读和示例
新增命名参数功能啥是命名参数?就是 具名 参数,在调用函数的时候,可以指定参数名称,指定参数名称后,参数顺序可以不安装原函数参数顺序传.例子:
注解功能
啥是注解?直接上代码,最后在解释
例子:
立即学习“PHP免费学习笔记(深入)”;
#[Attribute]class PrintSomeThing{ public function __construct($str = '') { echo sprintf("打印字符串 %s ", $str); }}#[PrintSomeThing("hello world")]class AnotherThing{}// 使用反射读取住解$reflectionClass = new ReflectionClass(AnotherThing::class);$attributes = $reflectionClass->getAttributes();foreach($attributes as $attribute) { $attribute->newInstance(); //获取注解实例的时候,会输出 ‘打印字符串 Hello world’}登录后复制
注解功能个人理解总结,使用注解可以将类定义成一个一个 低解耦,高内聚 的元数据类。在使用的时候通过注解灵活引入,反射注解类实例的时候达到调用的目的。
**注解类只有在被实例化的时候才会调用
构造器属性提升
啥意思呢,就是在构造函数中可以声明类属性的修饰词作用域
例子:name = $name; $this->age = $age; } } //php8写法, class User { public function __construct( protected string $name, protected int $age ) {} }登录后复制
节约了代码量,不用单独声明类属性了。
联合类型
在不确定参数类型的场景下,可以使用.
例子:
function printSomeThing(string|int $value) { var_dump($value); }登录后复制
Match表达式
和switch cash差不多,不过是严格===匹配
例子:
立即学习“PHP免费学习笔记(深入)”;
'this a', 'c' => 'this c', 0 => 'this 0', 'b' => 'last b',};echo $str;//输出 last b登录后复制
新增 Nullsafe 运算符
name; } } //不实例 User 类,设置为null $user = null; echo $user->getName();//php8之前调用,报错 echo $user?->getName();//php8调用,不报错,返回空登录后复制
简化了 is_null 判断
推荐学习:《PHP视频教程》
以上就是结合示例讲解PHP8的新特性的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2166412.html