- 1 关于PHP7新特性
- 2 PHP7非兼容性改动
- 2.1 语言修改
- 2.1.1 变量处理机制修改
- 2.1.2 list()修改
- 2.1.3 foreach 修改
- 2.1.4 参数处理机制修改
- 2.1.5 整型处理机制修改
- 2.1.6 字符串处理机制修改
- 2.1.7 错误处理机制修改
- 2.1.8 其他语言层面的修改
- 2.2 标准库修改
- 2.3 其他修改
- 3 PHP7新增功能
- 4 PHP7SAPI模块修改
- 5 PHP7弃用功能
- 6 PHP7修改的函数
- 7 PHP7新增函数
- 8 PHP7新增类和接口
- 9 PHP7移除的扩展和SAPI
- 10 PHP7其他对扩展的修改
- 11 PHP7新增常量
- 12 PHP7INI配置文件修改
- 13 PHP7windows支持
- 14 PHP7其他修改
list()修改
一、list()不再按照相反的顺序赋值
list($array[], $array[], $array[]) = [1, 2, 3]; var_dump($array);
上面的代码会返回一个数组:$array == [1, 2, 3] 而不是之前的 [3, 2, 1]
注意:只是赋值的顺序发生变化,赋的值还是和原来一样的。
list($a, $b, $c) = [1, 2, 3]; // $a = 1; $b = 2; $c = 3;
和原来的行为还是一样的。
二、空的list()赋值不再允许。
list() = $a; list(,,) = $a; list($x, list(), $y) = $a;
上面的这些代码运行起来会报错了。
三、list()不在支持字符串拆分功能
$string = "xy"; list($x, $y) = $string;这段代码最终的结果是:$x == null and $y == null (不会有提示)
PHP5运行的结果是: $x == "x" and $y == "y".
四、除此之外,list()现在也适用于数组对象:
list($a, $b) = (object) new ArrayObject([0, 1]);PHP7结果:$a == 0 and $b == 1.
PHP5结果:$a == null and $b == null.
参考资料:
https://wiki.php.net/rfc/abstract_syntax_tree#changes_to_list