PHP:注意何时error_reporting(E_ALL)

时间:2010-02-27 01:04:31

标签: php

当我尝试访问xml中未显示的信息时,如下所示:$someInfo = $element->blabla->cats[0]->src;
PHP显示如下通知:Notice: Trying to get property of non-object
我该如何处理此事?

3 个答案:

答案 0 :(得分:2)

$elementblablacats[0]不是对象,因此不能包含任何元素。

使用isset()

if (isset($element->blabla->cats[0]->src))
 echo $element->blabla->cats[0]->src;

一个isset()应该做,不需要连续检查每个部分。

即使cats存在但不是数组,这应该可以完成工作。

答案 1 :(得分:0)

您可以使用isset来验证对象属性是否存在,如下所示:

if (isset ($element->blabla) && isset ($element->blabla->cats) && etc..)

如果您不想看到通知,请使用error_reporting(E_ALL & ~E_NOTICE)

答案 2 :(得分:0)

或者替代(但错误的方式)你可以通过以下方式禁止登录你的php脚本:

error_reporting(E_ERROR);

这将迫使php仅报告致命错误。

无论如何,请使用Pekka解决方案。