如何在PHP5中链接混合类型的对象


How to chain objects of mixed types in PHP5

我想链接引用一个字符串属性,像这样:

echo($object1->object2->stringProperty);

但是这会产生这个错误:

可捕获的致命错误:类[对象2的类型]的对象无法转换为字符串

我可以通过在那里的某个地方强制类型转换来使它工作吗?它可以为中间对象使用一个中间变量,但这会增加一些麻烦:

class foo {
    public $bar;
}
class bar {
    public $title;
}
// Initialize the example.
$myBar = new bar();
$myFoo = new foo();
$myFoo->bar = $myBar;
$myBar->title = "fubar";
// Using an intermediate object works.
$temp = $myFoo->bar;
echo("$temp->title<br />");
// Using a direct reference raises a fatal error.
echo("$myFoo->bar->title<br />");

或者去掉引号:

echo $myFoo->bar->title . "<br />";

或放在大括号中(也称为复杂语法):

echo "{$myFoo->bar->title}<br />";