小滕的博客

小滕的技术点滴

PHP7.4部分新特性

4 months ago · 0 MIN READ

类属性类型修饰

<?php
class User {
    public int $id;
    public string $name;
}

7.4之后,可以给类属性增加类型限定了。

箭头函数(语法糖)

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);

这种语法糖可以一定程度上简写代码。在使用过程中,必须遵循这样的格式。不知道以后会不会演化成 ($n) => $n * $factor /手动笑哭。

返回类型限定支持多态

<?php
class A {}
class B extends A {}

class Producer {
    public function method(): A {}
}
class ChildProducer extends Producer {
    public function method(): B {}
}

数组解包

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];

...$parts 这种方式可以更加自由的合并数组。

虚引用

这个功能特性涉及到PHP的底层。PHP底层的内存回收算法是引用计数,如果数值为0就回收内存。但是虚引用不算做引用计数。

Throwing exceptions 增加 __toString()

Throwing exceptions 增加 __toString() 方法。以后再也不需要单独写异常的日志记录函数啦。

FFI

这是一个扩展,可以调用原生的C代码。

···

xiao teng



备案号:皖ICP备14012032号-5