我正在调试我的代码以检查当前对象。
这是一个从xml加载SimpleXml,如下所示
<?xml version="1.0" encoding="UTF-8"?><epreuves><epreuve id="467" noteSur="20"><![CDATA[Civil Engineering China 2012]]></epreuve></epreuves>我正在使用这段代码来加载对象。
$result=simplexml_load_string($xml_string,null,LIBXML_NOCDATA);当我调试我的代码时,我看到了这个:

当我将对象转换为字符串时,它给了我想要的数据,但为什么我在对象的内部某处看不到“土木工程中国2012”?
发布于 2012-11-07 19:11:28
简而言之,@Gordon是非常正确的:SimpleXMLElement类有一些非常不寻常的属性,所以期望它的对象在调试器中像“普通”对象一样暴露出来是不明智的。
不过,让我们更深入地分析一下。通过lxr.php.net进行简单的搜索(我选择了PHP5.3分支,因为坦率地说,我希望在5.4中也不会有什么不同)最终会把我们带到following structure
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)只是这个结构的一部分。
https://stackoverflow.com/questions/13268130
复制相似问题