PHP中simplexml_load_string函数使用说明

yipeiwu_com6年前PHP代码库
先用一段代码重现一下问题
乍一看,结果很让人费解:
复制代码 代码如下:

<?php
$string = <<<EOF
<data>
<foo><bar>hello</bar></foo>
<foo><bar>world</bar></foo>
</data>
EOF;

$data = simplexml_load_string($string);

print_r($data);
print_r($data->foo);
?>

乍一看,结果很让人费解:
复制代码 代码如下:

SimpleXMLElement Object
(
[foo] => Array
(
[0] => SimpleXMLElement Object
(
[bar] => hello
)
[1] => SimpleXMLElement Object
(
[bar] => world
)
)
)
SimpleXMLElement Object
(
[bar] => hello
)

明明print_r显示foo是一个有两个bar元素的数组,但是最后却仅仅显示了一个bar元素!
原因其实很简单,在如上所示simplexml_load_string的结果里,foo并不是数组,而是一个迭代对象!
可以这样确认:
复制代码 代码如下:

foreach ($data->foo as $v) print_r($v);
foreach ($data->children() as $v) print_r($v);

看来,print_r或者var_dump之类的表象并不完全可信,自己多留心吧。

相关文章

PHP数组操作——获取数组最后一个值的方法

php开发过程中,可能经常需要对取出的数组要获取数组的最后健或值。在这里【宜配屋www.yipeiwu.com】总结了三个方法,并且跟据他们三个方法在一些情况下如何使用的条件限制进行了说...

php实现在线通讯录功能(附源码)

本文实例为大家分享php在线通信录编写代码,供大家参考,具体内容如下 <?php session_start(); define("N", TRUE); if(empt...

php对数组内元素进行随机调换的方法

本文实例讲述了php对数组内元素进行随机调换的方法。分享给大家供大家参考。具体分析如下: 这是一个自定义的php数组元素随机调换的函数,php已经有一个内置的同样功能的函数shuffle...

PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】

PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】

本文实例讲述了PHP登录验证功能。分享给大家供大家参考,具体如下: 登录界面 具体实现方法如下: login.html <!DOCTYPE html> <h...

PHP编程实现微信企业向用户付款的方法示例

本文实例讲述了PHP编程实现微信企业向用户付款的方法。分享给大家供大家参考,具体如下: <?php header('content-type:text/html;cha...