duanpanhuo0618 2018-08-04 22:14
浏览 625
已采纳

PHP:list()在PhpStorm中给出未使用的局部变量错误

I am using the answer found at https://stackoverflow.com/a/25749660 in order to sort the $_SERVER['HTTP_ACCEPT_LANGUAGE'] array by the most preferred language.

In that answer (which is working great by the way), one line is:

list($a, $b) = explode('-', $match[1]) + array('', '');

Within PhpStorm, I get the following error for that line:

"Unused local variable $b: The value of the variable is overwritten immediately".

I'm a little confused as to what this line is doing exactly, so I don't know if I should just keep it the same, or if I should modify it to:

list($a) = explode('-', $match[1]) + array('', '');

... which also seems to be working fine.

Should it be changed?

  • 写回答

2条回答 默认 最新

  • duanjie5570 2018-08-04 22:29
    关注

    You can't join arrays with the arithmetic operator +. Basically you are telling PHP to convert the arrays to scalar types and then sum them, which yields you a number (probably arrays evaluate to 1 if it has elements and 0 if it doesn't).

    The result is that effectively you are doing something like:

    list($a, $b) = 2;
    

    And the conclusion PHP reaches is that you haven't specified enough elements to define all the variables in the list.

    To join two arrays together, use array_merge().

    list($a, $b) = array_merge(explode('-', $match[1]), array('', ''));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!