Как сделать цепочку объектов в классах PHP5? Примеры:
$myclass->foo->bar->baz(); $this->foo->bar->baz(); Not: $myclass->foo()->bar()->baz();
Смотрите также:
http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html
Пока у вашего $ myclass есть член / свойство, которое является экземпляром, оно будет работать именно так.
class foo { public $bar; } class bar { public function hello() { return "hello world"; } } $myclass = new foo(); $myclass->bar = new bar(); print $myclass->bar->hello();
на самом деле эти вопросы неоднозначны …. для меня этот ответ @ Geo правильный.
То, что вы (@Anti) говорит, может быть композицией
Это мой пример:
<?php class Greeting { private $what; private $who; public function say($what) { $this->what = $what; return $this; } public function to($who) { $this->who = $who; return $this; } public function __toString() { return sprintf("%s %s\n", $this->what, $this->who); } } $greeting = new Greeting(); echo $greeting->say('hola')->to('gabriel'); // will print: hola gabriel
?>
Для того, чтобы вызвать такие вызовы функции, как правило, вы возвращаете себя (или это) из функции.