PHP 5.3 SimpleXML到数组类型投射问题
我想对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找不到任何关于更改类型转换为数组的内容。
所以这可能(可能)是一个错误......
以上是 PHP 5.3 SimpleXML到数组类型投射问题 的全部内容, 来源链接: utcz.com/qa/260074.html