首页 > 编程语言 >前瞻 PHP8.4 的新特性

前瞻 PHP8.4 的新特性

时间:2024-05-17 09:07:49浏览次数:13  
标签:mainAuthor get PHP8.4 钩子 JIT 特性 jit PHP 前瞻

前瞻 PHP8.4 的新特性

PHP 8.4 将于 2024 年 11 月 21 日发布。它将包括属性钩子、JIT 改进,以及在不需要额外括号的情况下链式调用方法。这是一个大变化!

属性钩子 RFC

现代 PHP 历史上最大的变化之一:定义属性钩子的能力。

class BookViewModel
{
    public function __construct(
        private array $authors,
    ) {}

    public string $credits {
        get {
            return implode(', ', array_map(
                fn (Author $author) => $author->name,
                $this->authors,
            ));
        }
    }

    public Author $mainAuthor {
        set (Author $mainAuthor) {
            $this->authors[] = $mainAuthor;
            $this->mainAuthor = $mainAuthor;
        }

        get => $this->mainAuthor;
    }
}

属性钩子的目标是通过允许每个属性定义自己的 get 和 set 钩子,去除大量的 getter 和 setter。钩子是可选的,不必在特定属性上同时添加两个钩子。例如,只有 get 钩子的属性是虚拟属性。这应该是目前 PHP 8.4 最大的更新了,非常期待,又少写了好多代码

标签:mainAuthor,get,PHP8.4,钩子,JIT,特性,jit,PHP,前瞻
From: https://www.cnblogs.com/catchadmin/p/18197155

相关文章

  • ❤️‍ Solon Cloud Event 新的事务特性与应用
    1、SolonCloudEvent?是Solon分布式事件总线的解决方案。也是Solon“最终一致性”分布式事务的解决方案之一2、事务特性事务?就是要求Event有原子性,当多个Event发布时,要么全成功,要么全失败。publicclassEventDemo{publicvoidevent_tran(){//新建......
  • Python函数与模块的精髓与高级特性
    本文分享自华为云社区《Python函数与模块的精髓与高级特性》,作者:柠檬味拥抱。Python是一种功能强大的编程语言,拥有丰富的函数和模块,使得开发者能够轻松地构建复杂的应用程序。本文将介绍Python中函数和模块的基本使用方法,并提供一些代码实例。1.函数的定义与调用函数是一段......
  • Java8新特性
    1Lambda表达式1.1使用Lambda表达式实现函数式接口1【案例1】函数是接口MyInterOne//函数式接口(接口中只有一个抽象方法)@FunctionalInterfacepublicinterfaceMyInterOne{publicabstractvoidmethodOne();}【案例2】定义MyInterOneImpl类实现接口MyInterOnepub......
  • ES 2024 新特性
    ECMAScript2024新特性ECMAScript2024,the15thedition,addedfacilitiesforresizingandtransferringArrayBuffersandSharedArrayBuffers;addedanewRegExp/vflagforcreatingRegExpswithmoreadvancedfeaturesforworkingwithsetsofstrings;andi......
  • 在PLC的扫描特性下,FOR循环里面套IF或者定时器会发生什么?
    1.为什么会提出这个题目在PLC指令的执行过程中,FOR循环会在每个扫描周期执行完一个循环,然后程序才会接着往下扫描在PLC指令的执行过程中,IF判断会在每次扫描中判断一次条件,满足则进入执行体,不满足则跳出IF把IF放在FOR循环里面,会导致循环体执行时间过长,或者其他问题吗?(答案是不会......
  • Mysql事务特性和Mysql事务隔离级别
    事务执行异常处理、提交、回滚:https://www.cnblogs.com/xsj1989/p/17774735.htmlMysql默认的执行引擎是innoDB,支持事务,行级锁定和外键。Mysql事务特性1.原子性:事务是一个不可分割的整体,要么全部成功,要么全部失败。2.一致性:系统从一个正确状态迁移到另一个正确状态。3.隔离性:每个......
  • Python 潮流周刊#50:我最喜欢的 Python 3.13 新特性!
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期分享了12篇文章,11个开源项目,2则音视频,赠书5本《黑客与画家(10万册纪......
  • dotnet 使用自定义特性
    namespaceTETTD.Common{///<summary>///导入excel特性标记字段映射的列///</summary>[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field,AllowMultiple=false)]publicclassReadAttribute:Attribute{p......
  • [转帖]Mysql数据库的事务特性、隔离级别及MVCC多版本并发控制简介
    https://my.oschina.net/tongchengyu/blog/4714950事务的特性数据库如果支持事务,就要满足下面四个特性(ACID)。原子性(A:Atomicity)在一个事务中,多个sql操作,要么一起成功(所有数据操作都成功),要么一起回滚(其中一个没有成功,其他数据操作一起恢复到开始状态)。一致性(C:Consisten......
  • 面向对象的三大特性、封装的介绍及属性、装饰器property、员工管理系统
    【一】面向对象的三大特性封装:封装指的就是把数据与功能都整合到一起继承多态【二】什么是封装封装是对具体对象的一种抽象意思就是将某部分功能和代码隐藏起来,在程序外边看不到,只能在程序内部使用【三】为什么要封装?封装数据的主要原因是:保护隐私(把不想别人......