php7支持list吗,php7新特性之可以使用 list() 函数来展开实现了 ArrayAccess 接口的对象...

这个问题之前我是没有遇到过的,也说明php使用的还是不精啦。

下面使用php官方手册中的实例来说明一下:

$info = array('coffee', 'brown', 'caffeine');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

复制代码

以上代码,在php5.6版本下输出结果是这样的:

array(3) {

[2]=>

string(8) "caffeine"

[1]=>

string(5) "brown"

[0]=>

string(6) "coffee"

}

复制代码

而在php7.4版本下输出结果又是这样的:

array(3) {

[0]=>

string(6) "coffee"

[1]=>

string(5) "brown"

[2]=>

string(8) "caffeine"

}

复制代码

从上述输出结果中,可以看出,$a的数组结果完全相反的,php官方手册上有这样一句话:

182de780ad472a84587f44df944ff05f.png

所以,php7中算是修复了这一问题,而php7是如何修复的呢?php7中引入了AST抽象语法树,这也是php7的一大新特性。AST的概念后续再说了,比较复杂。

同时,这里再说明一点,现在我的版本是php7.4.4,这个版本下list还支持如下简洁操作:

[$a, $b, $c] = ['a', 'b', 'c'];

复制代码

这个操作是从7.1版本开始的,每个版本都会有新的变化,可以定期关注下。而上述所说的list() 函数来展开实现了 ArrayAccess 接口的对象是php5到php7的一个重大新特性,要牢记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值