PHP 空数组定义以逗号开头或结尾

问题描述 投票:0回答:2

所以我在办公室的 PHP8 代码上遇到了这些(简化版):

[, $x] = $y;

我也看到了另一种方式

[$x, ] = $y;

这些会做什么?如果我在沙箱中执行此操作并事先为 $y 分配随机值,则 $x 不会得到任何结果。我知道这不是坏代码,因为 PHPStorm 验证了它。

我尝试过搜索它,但包括 Stackoverflow 在内的每个搜索引擎都会忽略逗号或 [],所以我无法得到答案。

php arrays definition
2个回答
0
投票
$array = [10, 20, 30];

[$x, ] = $array;

echo $x;  // Output: 10

[, $x] = $array;

echo $x;  // Output: 20

这称为数组解构


0
投票

这是解构赋值。左侧数组中的变量是从右侧数组的相应元素分配的。它相当于旧的

list()
作业

您可以使用前后不带变量的逗号来指示分配时跳过的数组元素。因此:

[, $x] = $y;

相当于

$x = $y[1];

[$x, ] = $y;

相当于

$x = $y[0];

列表末尾不需要逗号,但您可能会出于与在数组文字中包含逗号相同的原因包含它们:它使添加其他元素变得更容易(特别是当您每行写入一个元素时) ).

© www.soinside.com 2019 - 2024. All rights reserved.