如何处理PHP中"Undefined Offset"错误

文章目录
  1. 使用isset()函数
  2. 使用empty()函数
  3. 使用array_key_exists()函数

https://www.w3docs.com/snippets/php/how-to-deal-with-undefined-offset-error-in-php.html

让我们看一个例子。

<?php

/* 声明数组 */
$students = array(
  0 => 'Ann',
  1 => 'Jennifer',
2 => 'Mary'
);

/* Leyla */
echo $students[0];

/* ERROR: Undefined offset: 5 */
echo $students[5];

/* ERROR: Undefined index: key */
echo $students[key];

?>

下面,我们将向你展示几种避免"Undefined Offset"错误的方法。

使用isset()函数

这个函数检查对应变量是否被定义且不为空。

使用isset函数来避免Undefined Offset的例子如下。

<?php

$students = array(
  0 => 'Ann',
  1 => 'Jennifer',
2 => 'Mary'
);

if (isset($students[5])) {
  echo $students[5];
} else {
echo "索引不存在";
}

?>

输出将显示。

索引不存在

使用empty()函数

empty()函数用于检查一个数组内的变量或索引值是否为空。

下面是一个例子。

<?php

$students = array(
  0 => 'Ann',
  1 => 'Jennifer',
2 => 'Mary'
);

if(!empty($students[5])) {
  echo $students[5];
} else {
echo "索引不存在";
}

?>

输出结果将如下。

索引不存在

使用array_key_exists()函数

该函数用于以键值对形式存储数据的数组。

array_key_exists函数用于检查指定的键是否存在于数组中。

下面是一个例子。

<?php
/* 演示array_key_exists()函数的用途 */

function Exists($index, $array)
{
  if (array_key_exists($index, $array)) {
    echo "Key Found";
  } else {
    echo "Key not Found";
  }
}

$array = array(
  "john" => 25,
  "david" => 10,
"jack" => 20
);

$index = "jack";

print_r(Exists($index, $array));
?>

输出结果将是。

Key Found