如果变量不存在则发出警告

时间:2013-09-20 12:08:10

标签: php xampp

如果我尝试使用PHP中甚至不存在的变量,我不会收到任何错误或通知。在下面的示例中,返回值为“null”。如果发生这种情况,我希望看到某种形式的通知,这样我就可以更轻松地找到代码中的错误。

echo $doesNotExist -> something; //returns null

我的php.ini中的错误报告如下

error_reporting = E_ALL

在访问不存在的变量时,我该怎么做才能看到通知?

澄清这一点:

我知道我可以使用isset()检查变量是否存在。这不是我想要的。我希望得到一个通知,以防我不小心尝试使用不存在的变量。例如,如果我拼错了变量的名称。

display_errors = On在我的php.ini

3 个答案:

答案 0 :(得分:0)

error_reporting一样,您可能需要启用display_errors,这应该在生产环境中关闭。

生产环境可以使用log_errors代替,它会将错误输出到error_log指令中指定的文件。

答案 1 :(得分:-1)

你所做的是在PHP中完全有效。它只是在运行时创建并实例化该变量,并且不会像其他语言一样抛出错误。

即使是isset也不会太好用。假设您使用错误的名称设置对象变量。如果您确实使用该名称,那将是真的。如果您确实使用了正确的名称,那么它将是错误的。

示例:

class test{
    public $name1;
}

$test = new test;
$test->name2 = 'wrong';

var_dump($test);

打印:object(test)#1 (2) { ["name1"]=> NULL ["name2"]=> string(5) "wrong" }

答案 2 :(得分:-2)

我通常使用以下内容;

if(isset($var) && !empty($var)) {
    //Do something with $var
} else {
    //Define $var
}

如上一个答案中所述,您还需要在php.ini

中打开错误报告