未定义的偏移量1

tus*_*hAR 15 php google-api google-webmaster-tools

未定义的偏移量:1

您好......我正面临一个未定义的偏移问题:第3行中的1个.我无法理解它是什么类型的错误.任何人都可以告诉我为什么这样的错误发生在PHP中

行中未定义的偏移量:3

    foreach ($lines as $line)
    {
      list($var,$value) = explode('=', $line); //line 3
      $data[$var] = $value;
    }
Run Code Online (Sandbox Code Playgroud)

Nau*_*hal 21

您正在获取PHP,notice因为您正在尝试访问未设置的数组索引.

list($var,$value) = explode('=', $line);
Run Code Online (Sandbox Code Playgroud)

上述线爆串$line=和分配0th在值$var1st在值$value.$line包含一些没有的字符串时会出现问题=.


mrj*_*ers 9

我知道这是一个老问题而且提供的答案已经足够了,"你正在通知PHP,因为你试图访问未设置的数组索引." 但是我相信在使用list()/ explode()组合可能有空数组的情况下,克服未定义索引问题的最佳方法是使用数组板设置默认值.

原因是当你使用list()时,你知道你想从数组中获得的变量数.

例如:

$delim = '=';
$aArray = array()
$intNumberOfListItems = 2;


list($value1, $value2) = array_pad(explode($delim, $aArray, $intNumberOfListItems ), $intNumberOfListItems , null);
Run Code Online (Sandbox Code Playgroud)

基本上你传递第三个参数来爆炸,说明list()变量需要多少个值(在上面的例子中为2).然后,当数组不包含列表变量的值时,使用array_pad提供默认值(在上面的示例中为null).