0

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

echo $doesNotExist -> something; //returns null

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

error_reporting = E_ALL

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

为了澄清这一点:

我知道我可以通过使用来检查变量是否存在isset()。但这不是我想要的。如果我不小心尝试使用不存在的变量,我想收到通知。例如,如果我拼错了变量的名称。

display_errors = On在我的 php.ini 中

4

3 回答 3

0

此外error_reporting,您可能需要打开display_errors,在生产环境中应该关闭。

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

于 2013-09-20T12:13:50.647 回答
-1

我一般使用以下;

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

如上一个答案所述,您还需要在 php.ini 中打开错误报告

于 2013-09-20T12:22:31.573 回答
-1

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

即使 isset 也不能​​很好地工作。假设您设置了一个名称错误的对象变量。如果您确实使用该名称,那将是正确的。如果您对正确的名称进行 isset,它将是错误的。

例子:

class test{
    public $name1;
}

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

var_dump($test);

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

于 2013-09-20T13:53:13.033 回答