我正在使用https://stackoverflow.com/a/25749660上找到的答案,以便按最喜欢的语言对$_SERVER['HTTP_ACCEPT_LANGUAGE']数组进行排序。

在该答案中(顺便说一句效果很好),一行是:
list($a, $b) = explode('-', $match[1]) + array('', '');
在PhpStorm中,该行出现以下错误:

“未使用的局部变量$ b:变量的值立即被覆盖”。

我对这条线的确切功能有些困惑,所以我不知道是否应该保持不变,还是应该将其修改为:
list($a) = explode('-', $match[1]) + array('', '');
...这似乎也很好。

应该改变吗?

最佳答案

您不能使用算术运算符+连接数组。基本上,您是在告诉PHP将数组转换为标量类型,然后对其求和,这会产生一个数字(如果数组包含元素,则数组的值为1,否则为0)。

结果是您实际上在执行以下操作:

list($a, $b) = 2;

PHP得出的结论是,您没有指定足够的元素来定义列表中的所有变量。

要将两个数组连接在一起,请使用array_merge()
list($a, $b) = array_merge(explode('-', $match[1]), array('', ''));

关于php - PHP:list()在PhpStorm中提供未使用的局部变量错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51689922/

10-16 21:46