首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个PHP对象中的数据隐藏在哪里?

这个PHP对象中的数据隐藏在哪里?
EN

Stack Overflow用户
提问于 2012-11-07 18:49:30
回答 1查看 44关注 0票数 0

我正在调试我的代码以检查当前对象。

这是一个从xml加载SimpleXml,如下所示

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?><epreuves><epreuve id="467" noteSur="20"><![CDATA[Civil Engineering China 2012]]></epreuve></epreuves>

我正在使用这段代码来加载对象。

代码语言:javascript
复制
$result=simplexml_load_string($xml_string,null,LIBXML_NOCDATA);

当我调试我的代码时,我看到了这个:

当我将对象转换为字符串时,它给了我想要的数据,但为什么我在对象的内部某处看不到“土木工程中国2012”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-07 19:11:28

简而言之,@Gordon是非常正确的:SimpleXMLElement类有一些非常不寻常的属性,所以期望它的对象在调试器中像“普通”对象一样暴露出来是不明智的。

不过,让我们更深入地分析一下。通过lxr.php.net进行简单的搜索(我选择了PHP5.3分支,因为坦率地说,我希望在5.4中也不会有什么不同)最终会把我们带到following structure

代码语言:javascript
复制
typedef struct {
    zend_object zo;
    php_libxml_node_ptr *node;
    php_libxml_ref_obj *document;
    HashTable *properties;
    xmlXPathContextPtr xpath;
    struct {
        xmlChar               *name;
        xmlChar               *nsprefix;
        int                   isprefix;
        SXE_ITER              type;
        zval                  *data;
    } iter;
    zval *tmp;
    zend_function *fptr_count;
} php_sxe_object;

这里有几件值得注意的事情--我想,在问题的上下文中,重要的是“普通”对象本身(像定义的here)只是这个结构的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13268130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档