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