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

时间:2013-11-13 22:38:25

标签: php null notice

我已经尝试了所有的东西,但只是不能让这个通知消失。

我有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 个答案:

答案 0 :(得分: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']是非感性的,因为......我不存在!

答案 1 :(得分:0)

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

答案 2 :(得分:0)

无法从MySQL数据库中检索

null个值,因此未设置任何可能包含一个变量的变量。

在您的第一个代码段中,您正在对此进行测试,但请继续并分配值,以便您收到通知。

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

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

答案 3 :(得分:0)

尝试

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