为什么PHP在引用数组作为对象属性时返回数组的第一个值?

为什么PHP在引用数组作为对象属性时返回数组的第一个值?,php,xml,object,Php,Xml,Object,为什么下面代码中的第二个回显行返回(字符串)“first”而不是数组 代码: 这不是一般的PHP特性。尝试: SimpleXML的一个特性是,访问这样的属性会得到第一个适用的子级,然后可以将其转换为字符串 尽管SimpleXML是一个扩展,但您可以使用和magic方法在纯PHP中实现类似的功能。这正是我所怀疑的,有指向文档的链接吗?我不知道在哪里可以找到文档。编辑得好(神奇的方法)。但是,示例2是如何关联的?plot属性只包含一个字符串。@cainmi,唯一的区别是XML中只有一个plot。您可

为什么下面代码中的第二个回显行返回(字符串)“first”而不是数组

代码:


这不是一般的PHP特性。尝试:

SimpleXML的一个特性是,访问这样的属性会得到第一个适用的子级,然后可以将其转换为字符串


尽管SimpleXML是一个扩展,但您可以使用和magic方法在纯PHP中实现类似的功能。

这正是我所怀疑的,有指向文档的链接吗?我不知道在哪里可以找到文档。编辑得好(神奇的方法)。但是,示例2是如何关联的?plot属性只包含一个字符串。@cainmi,唯一的区别是XML中只有一个
plot
。您可以使用
echo$xml->movie[0]->rating使示例与您的情况完全相同(在同一个示例XML上)。请注意,有两个额定值,这将输出第一个额定值。
<?php

$foo = simplexml_load_string(<<<EOF
<?xml version='1.0'?> 
<document>
    <body>
        <content>first</content>
        <content>second</content>
    </body>
</document>
EOF
);

echo '<pre>$foo entire object:', "\n", print_r($foo, true), "\n";
echo '$foo->body->content: ', "\n", $foo->body->content;

?>
$foo entire object:
SimpleXMLElement Object
(
    [body] => SimpleXMLElement Object
        (
            [content] => Array
                (
                    [0] => first
                    [1] => second
                )
        )
)

$foo->body->content: 
first
class Foo
{
    public function Foo()
    {
    $this->a = array("foo", "bar");
    }
}
$f = new Foo();
print_r($f->a);