1

我已经尝试了一切,但就是无法让这个通知消失。

我有一个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']); }

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

4

4 回答 4

1

您可能想查看该$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']当它不存在时访问是没有意义的,因为......好吧我不存在!

于 2013-11-13T22:42:07.803 回答
0

尝试

$variable = (isset($data['variable'])) ? $data['variable'] : 0;
于 2013-11-13T22:47:09.950 回答
0

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

于 2013-11-13T22:43:16.137 回答
0

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']未设置。

于 2013-11-13T22:44:45.660 回答