我已经尝试了所有方法,但就是无法让此通知消失。
我有一个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;