我正在使用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/