asXML() 在成功时不返回 true

asXML() not returning true on success

这一行有效:

$catXML->asXML('content/catalogue.xml');

目录保存正确。手册说 asXML() 应该 return 布尔值 TRUE 或失败时为 FALSE。所以我试过了:

if (!$catXML) {
   // Catalogue did not save or path was invalid
   $responseHd = 'Sorry';
etc....

但即使我设置了无效路径,它也会报告成功。 gettype($catXML) 还显示 'object' 具有无效路径和通过有效路径成功。

我错过了什么?

您没有查看 asXML 调用的结果。您只是在评估 $catXML,这是 SimpleXML 对象本身。这不会受到调用的影响,它仍然是之前的对象。

如果你想检查文件是否写入成功,你需要将调用结果赋值给某些东西:

$success = $catXML->asXML('content/catalogue.xml');

if (!$success) {
  // Catalogue did not save or path was invalid
  $responseHd = 'Sorry';
  ...

好吧,我不觉得自己很傻。非常感谢您的快速回复,很抱歉占用了您的时间。

鲍勃