• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

PHP 5.3 SimpleXML到数组类型投射问题

php 来源:PHP_dude 5次浏览

我想对SimpleXML元素进行计数。它在PHP 5.3和PHP 5.2上给了我不同的结果。我的代码看起来像如下:PHP 5.3 SimpleXML到数组类型投射问题

$xml = new SimpleXMLElement('<command action="foo"/>'); 
print_r(count((array)$xml->children()));` 

在PHP 5.2以上版画“1”,并在PHP 5.3将打印“0” :( 我知道我可以使用$xml->count但这并不伊诺考虑到根元素的XML。

只是想知道什么可能是错误的类型铸造SimpleXML来阵列在PHP 5.3


===========解决方案如下:

好,SimpleXMLElement::children()将根据手动总是返回一个SimpleXMLElement实例。

它根据var_dump做。

但作为命令没有子,返回的对象具有其产生至0 when casting to array没有可访问的属性:

如果对象被转换成一个阵列,其结果是一个数组,其 元素是该对象的属性。密钥是成员变量 的名称,但有一些值得注意的例外:整数属性为 无法访问;私有变量的类名前加 变量名;受保护变量的变量名前加’*’作为前缀。这些前置值在任一侧都有空字节。

对于5.2 to 5.3找不到任何关于更改类型转换为数组的内容。

所以这可能(可能)是一个错误……


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)