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

时间:2013-04-23 21:16:07

标签: php oop chaining

我想链式引用这样的字符串属性:

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 />");

1 个答案:

答案 0 :(得分:5)

删除引号:

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

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

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