【发布时间】:2015-05-04 02:42:53
【问题描述】:
我有一个由 simplexml_load_string 从以下 XML 创建的 XML 对象:
<?xml version="1.0" encoding="UTF-8"?>
<Website hasRead="true" hasWrite="true" key="managementui" terminalUserPin="" username="admin">
<Section key="organisation">
<Controller key="Sites">
<Function hasRead="false" hasWrite="false" key="estateLayout"/>
</Controller>
</Section>
<Section hasRead="false" hasWrite="false" key="settings"/>
</Website>
存储在变量$xml中
当我尝试时:
$xmlkey = $xml['key'];
var_dump($xmlkey);
我希望看到字符串'managementui',但我得到了一个异常。错误日志甚至没有显示任何内容。这是怎么回事?
在多年的 Java 经验之后尝试学习 PHP。当人们说 PHP 很“简单”时,一定是对“简单”这个词的一些奇怪用法,我以前不知道 :)
编辑 现在将麻烦的代码提取到一个较小的 php 文件中并从命令行运行它,似乎没有任何问题。 var_dump 给出了预期的结果。麻烦的是,它仍然在生产代码中引发错误。在命令行上运行和在网络上(在 apache 上)运行之间的行为是否有任何预期差异?
【问题讨论】:
-
您必须先将 XML 解析为数组...参见 php.net/manual/en/book.simplexml.php
-
$xml['key'] 仍然返回 SimpleXMLElement...ideone.com/wgb7Rp
-
如果是 SimpleXMLElement,那么 var_dump 应该这样说,而不是抛出错误。
-
你遇到了什么异常?