2013-04-23 6 views
1

Я хотел бы цепную ссылку строки свойство как это:Как цепочки объектов смешанного типа в PHP5

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

Но что дает эту ошибку:

Catchable фатальной ошибки: Объект класс [тип объекта 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 />"); 
+0

@ sam-dufel $ object 2 - это объект. В приведенном выше примере кода это классная строка. –

ответ

5

Либо удалить кавычки:

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

или место в фигурных скобках (также известная как сложный синтаксис):

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

Блестящий, спасибо. –

Смежные вопросы