PHP-74-新特性
PHP 7.4 计划在2019年11月21日发布,它主要新增了以下几个特性: 短闭包函数(short closure)预加载提交性能属性类型限定Improved type variance(不会翻译)三元运算简写数组展开运算新增类的魔术方法:serialization数字分隔符运算优先顺序允许在__toString中抛出异常支持反射引用新增字节分割函数移除php短标签弃用左关联运算符不再向后兼容的变更短闭包函数短闭包函数可以减少冗余代码: array_map(function (User $user) { return $user->id; }, $users)array_map(fn(User $user) => $user->id, $users)需要注意几点: 短闭包可以直接访问闭包函数外面的变量,所以不需要再写 use 关键词以fn关键词开始$this 可以像普通的闭包一样使用短闭包只有一行代码,仅仅做返回声明使用,不允许使用return 关键词还可以使用更严格类型的方式 $ids = array_map(fn(User $user): int => $user->id, $user);预加载PHP预加载可以极大的提高性能 优点:在PHP 7.4以前,如果你使用了框架来开发,每次请求文件就必须加载和重新编译。预加载在框架启动时在内存中加载文件,而且在后续请求中永久有效。 缺点:性能的提升会在其他方面花费很大的代价,每次预加载的文件发生改变时,框架需要重新启动。 属性类型限定class A{ public string $name; public Foo $foo;}不得不说,PHP越来越接近Java等强类型语言 Improved type variance协变返回类型: class ParentType {}class ChildType extends ParentType {}class A{ public function covariantReturnTypes(): ParentType { /* … */ }}class B extends A{ public function covariantReturnTypes(): ChildType { /* … */ }}依赖(是不是很熟悉): ...