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

And*_*ler 1 php oop chaining

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

echo($object1->object2->stringProperty);
Run Code Online (Sandbox Code Playgroud)

但是这会产生这个错误:

可捕获的致命错误:类[对象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 />");
Run Code Online (Sandbox Code Playgroud)

web*_*ave 5

删除引号:

echo $myFoo->bar->title . "<br />";
Run Code Online (Sandbox Code Playgroud)

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

echo "{$myFoo->bar->title}<br />";
Run Code Online (Sandbox Code Playgroud)