这篇文章主要介绍了PHP7.1方括号数组符号多值复制及指定键值赋值用法,结合实例形式对比分析了php7数组复制与赋值的新特性与操作,需要的朋友可以参考下

本文实例讲述了PHP7.1方括号数组符号多值复制及指定键值赋值用法。分享给大家供大家参考,具体如下:

PHPer 们可能都知道 list 的用法,简单来说就是可以在一个表达试里通过数组对多个变量赋值:

$values = array('value1', 'value2');
$list($v1, $v2) = $values;

感觉是不是很方便呢?在 PHP 7.1 中,还能更省事儿:

[$v1, $v2] = ['foo', 'bar'];

这还不是最给力的,在 PHP 7.1 里我们还可以指定键值来赋值,从而不用关心数组元素的顺序:

list('v1' => $value1, 'v2' => $value2) = array('v1' => 'foo', 'v2' => 'bar', ...);
// or
['v1' => $value1, 'v2' => $value2] = ['v1' => 'foo', 'v2' => 'bar', ...];

其实在 PHP 5 的年代,list 就有一个很不错的用法可能大家都不熟悉:

$arr = [
  ['x', 'y'],
  ['x1', 'y2'],
];
foreach ($arr as list($x, $y)) {
  echo $x, ' ', $y, PHP_EOL;
}

到了 PHP 7.1,因为可以指定键值赋值,这种用法将更加的灵活,估计也更加常用:

$arr = [
  ['x' => 1, 'y' => '2'],
  ['x' => 2, 'y' => '4'],
];
foreach ($arr as ['x' => $x, 'y' => $y)) {
  echo $x, ' ', $y, PHP_EOL;
}

再看看一个官网的例子,是不是感觉好像春风拂面一样清爽:

class ElePHPant
{
  private $name, $colour, $age, $cuteness;
  public function __construct(array $attributes) {
    // $this->name = $attributes['name']; // 以前
    // 现在
    [
      "name" => $this->name,
      "colour" => $this->colour,
      "age" => $this->age,
      "cuteness" => $this->cuteness
    ] = $attributes;
  }
  // ...
}

值得一提的是:此种赋值方式,是可以嵌套使用的!

[[$a, $b], [$c, $d]] = [[1, 2], [3, 4]];

最后,在 PHP 7.1 的提案里有一个展望,也非常值得期待:

class ElePHPant
{
  private $name, $colour, $age, $cuteness;
  public function __construct(["name" => string $name, "colour" => \Colour $colour, "age" => int $age, "cuteness" => float $cuteness]) {
    $this->name = $name;
    $this->colour = $colour;
    $this->age = $age;
    $this->cuteness = $cuteness;
  }
  // ...
}

如果 PHP 推出此语法,那么参数列表将不再关心参数顺序,PHP 的小伙伴将不再羡慕 Ruby 的小伙伴啦!

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程总结》、《PHP数组(Array)操作大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作汇总》

希望本文所述对大家PHP程序设计有所帮助。

最新资讯
高通苹果专利之争:谁都有软肋

高通苹果专利之争:谁都

12月10日,高通对外宣布,中国福建省福州中级人民法(tian)院(ping)授予
亚马逊加速推进自研芯片 英特尔领先地位岌岌可危

亚马逊加速推进自研芯

作为全球最大的在线零售商和最大的云计算公司,亚马逊正
Uber拟接入伦敦巴士及地铁数据 有野心打败谷歌地图

Uber拟接入伦敦巴士及

据知情人士透露,Uber试图将伦敦巴士和地铁的时间表整合
中国式支付崛起 支付宝国内用户数是美国人口2倍

中国式支付崛起 支付

现在已经有相当多的国家接受微信支付和支付宝,广泛程度
马斯克称特斯拉正测试自动驾驶功能

马斯克称特斯拉正测试

马斯克称特斯拉近期为其自动驾驶系统重写了神经网络,以
摩拜正接受德国监管机构调查 疑违反欧洲数据法

摩拜正接受德国监管机

中国摩拜正在接受德国数据监管机构的调查,这家发展迅速
最新文章
php实现微信企业付款到个人零钱功能

php实现微信企业付款

这篇文章主要为大家详细介绍了php实现微信企业付款到
PHP实现微信对账单处理

PHP实现微信对账单处

这篇文章主要为大家详细介绍了PHP实现微信对账单处理,
php提取微信账单的有效信息

php提取微信账单的有

这篇文章主要为大家详细介绍了php提取微信账单的有效
php-fpm.conf配置文件中文说明详解及重要参数说明

php-fpm.conf配置文件

本文主要介绍了php-fpm.conf配置文件的中文说明详解以
PHP实现微信退款功能

PHP实现微信退款功能

这篇文章主要为大家详细介绍了PHP实现微信退款功能,具
PHP实现微信申请退款功能

PHP实现微信申请退款

这篇文章主要为大家详细介绍了PHP实现微信申请退款功