我正在调试我的代码以检查当前对象。
来自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);
当我调试我的代码时,我看到了:
当我将对象转换为字符串时,它会向我提供我想要的数据,但为什么我看不到&#34;土木工程中国2012&#34;在对象的胆量的某个地方?
答案 0 :(得分:1)
简而言之,@ Gordon非常正确:SimpleXMLElement
类具有一些非常不寻常的属性,因此不希望其对象在调试器中与“普通”对象一样显示。
让我们再分析一下。通过lxr.php.net
进行简单搜索(我接受了PHP 5.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)只是这个结构的一部分。