如何实现错误处理


how to implement error handling

我的PHP代码中有这个问题:

if (!is_null($sxml->children('http://a9.com/-/spec/opensearchrss/1.0/')))

错误是:

Fatal error: Call to a member function children() 

我知道错误发生了,因为没有子节点。

我想做的是确保错误不会被触发。我尝试使用is_null和is_object检查孩子是否存在,但错误仍然被触发。

我只需要隐藏错误信息,因为我不知道孩子们什么时候会出现。

我希望我说的有意义。

谢谢

我知道错误发生了,因为没有子节点。

这个语句是错误的。这个错误与没有孩子这一事实无关。$sxml中包含的对象没有称为children的方法,因此该调用将总是导致致命错误。

它可能是一个属性;通过在代码中添加print_r($sxml->children);调用来测试这一点。

除此之外,像children('http://a9.com/-/spec/opensearchrss/1.0/')这样的调用根本没有意义:对于检索某种类型的所有子函数,您要么传递一个有效的XPath选择器,要么传递一个元素。但是您传递的URL两者都不是,所以即使该函数存在,它也很可能失败。 -显然你可以通过一个URL来选择名称空间

使用count()来测试节点是否有子节点

if($sxml->children().count()!=0) 
 {
  }

你是错误关于为什么你得到错误。

你得到这个错误,因为$sxml 不是SimpleXMLElement。请显示创建$sxml的代码,因为这是您的问题所在。

如果SimpleXMLElement没有子数组,则children()返回一个空数组。没有致命错误