未定义的偏移量 1

php
2022-08-30 19:49:05

我遇到了一个问题,即第3行中未定义的偏移量:1。我不明白这是什么类型的错误。谁能告诉我为什么在php中会出现这样的错误

行中未定义的偏移量 : 3

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

答案 1

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

list($var,$value) = explode('=', $line);

上面的行将字符串分解为 ,并在 中分配值 和 值。当包含一些没有 的字符串时,会出现此问题。$line=0th$var1st$value$line=


答案 2

我知道这是一个老问题,提供的答案就足够了。

您收到 PHP 通知,因为您正在尝试访问未设置的数组索引。

但是我相信,当存在使用/ combo的空数组时,克服未定义索引问题的最佳方法是使用.list()explode()array_pad()

原因是当你使用时,你知道你想要从数组中计算的变量数量。list()

例如:

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


list($value1, $value2) = array_pad(explode($delim, $aArray, $intNumberOfListItems ), $intNumberOfListItems , null);

实质上,您传递第三个参数来分解,说明变量需要多少个值(在上面的示例二中)。然后,当数组不包含列表变量的值时,您可以使用给出默认值(在上面的示例中为 null)。list()array_pad()


推荐