PHP:具有 NULL 值的未识别索引


PHP: Unidentified Index with NULL value

我已经尝试了所有方法,但就是无法让此通知消失。

我有一个text input显示从数据库中抓取的$variable的内容,并且值为 NULL 或整数值。

当值为 NULL 并且我使用它时,我得到 1 个未识别索引的错误

if(isset($data['variable'])) { $variable = $data['variable']; }
else { $variable = numberFormat($data['variable']); } 

当值为 NULL 并且我使用它时,我得到 2 个未识别索引的错误

if($data['variable'] == NULL) { $variable = $data['variable']; } 
else { $variable = numberFormat($data['variable']); }

谁能阐明如何摆脱这些"通知"?谢谢!

您可能想查看$data变量是否可用。 如果为 null,则无法访问不存在的变量中的元素。

if (isset($data)) {
    if(isset($data['variable'])) { $variable = $data['variable']; }
    else {
        //THIS MAKES NO SENSE. $data['variable'] does not exist.
        //$variable = numberFormat($data['variable']);
        //You can put something else in here, however
        $variable = "";
    } 
}

其次,在不存在$data['variable']时访问它是荒谬的,因为......好吧,我不存在!

我想$data['variable']不存在。在第二个示例中,您得到 2 个错误,因为您没有使用 isset() ,它可以处理未设置的变量。

null值不会从 MySQL 数据库中检索,因此不会设置任何可能包含该值的变量。

在您的第一个代码段中,您正在对此进行测试,但无论如何都要继续分配值,以便您收到通知。

if(isset($data['variable'])) {
  $variable = $data['variable'];
} else { 
  $variable = numberFormat($data['variable']); // Test for isset() fails, code comes here.
} 

您需要在else子句中为$variable分配一些有意义的内容,因为未设置$data['variable']

试试

$variable = (isset($data['variable'])) ? $data['variable'] : 0;