php7.1新特性简单介绍

作者:袖梨 2022-06-24


Allow specifying keys in list()
Square bracket syntax for array destructuring assignment

下面这个支持效果,还是不错的

list($a, $b) = array($b, $a);
[$a, $b] = [$b, $a];
 
foreach ($points as ["x" => $x, "y" => $y]) {
    var_dump($x, $y);
}
这个在遍历的时候会很方便,也很强大
感觉这两个特性会使数组使用便捷一些

Nullable Types

这个就是一个简写的标量或null,用处有,但感觉不大

Generalize support of negative string offsets

这个特性好,可以简化一些简单的字符串处理

Support Class Constant Visibility

暂时想不到太大用处,只是将类常量完善了

Void Return Type

这个限制函数返回值有用

同时希望miexd,number什么的也尽快出来

Catching Multiple Exception Types

多cacth异常感觉没什么用,可能还是不太会用异常吧


剩下的都是比较明显的,没啥好讨论的改进,所以就一块儿说吧


字符串索引可使用负数

$str='abcdef';
var_dump($str[-2]); // => string(1) "e"
 
$str{-3} = '.';
var_dump($str);        // => string(6) "abc.ef"
 
var_dump(isset($str{-4}));    // => bool(true)
 
var_dump(isset($str{-10}));    // => bool(false)
Void 返回类型

如果一个方法被设定成返回 void 类型,那么它将不能返回任何值

function foo(): void
{
    return 1; // 报错,不能有返回
}
 
function foo(): void
{
    return; // 正确
}
 
function foo(): void
{
    // 也正确
}

但要注意 null 是不能返回的:

function foo(): void
{
    return null; // 这也是不行的!
}

最后,如果子类要覆盖父类的某个返回 void 的方法,返回类型是不可以更改的。

类常量可见性设置

class Token
{
    // 默认是 public 属性
    const PUBLIC_CONST = 0;
 
    // 可添加可见性设置
    private const PRIVATE_CONST = 0;
    protected const PROTECTED_CONST = 0;
    public const PUBLIC_CONST_TWO = 0;
 
    // 所有常量只能设置一次可见性
    // 也可以这么写
    private const FOO = 1, BAR = 2;
}

多种 Exception 同时 Catch


try {
   // Some code...
} catch (ExceptionType1 | ExceptionType2 $e) {
   // 如果有不同的异常想用一种方式来处理的时候,就很有用了
} catch (Exception $e) {
   // ...
}
好啦,PHP 7.1 的新特性就是这些了,大家有没有很期待呢?

相关文章

精彩推荐