Это прекрасно работает в современных версиях PHP.
[mcg@mcg-workstation ~]$ php -a
Interactive shell
php > class Foo { public function functionThatReturnsAnObject() { return new Bar(); } }
php > class Bar { public $property = 'Hello, world.'; }
php > $f = new Foo();
php > echo $f->functionThatReturnsAnObject()->property;
Hello, world.
php >
Если вы столкнулись с ошибкой, нам нужно знать, что это за ошибка.Как упоминалось в комментариях, вы не сможете сделать это в PHP4, но вам не следует использовать PHP4 в современную эпоху с самого начала.Пока вызываемый вами метод экземпляра возвращает объект, вы можете напрямую работать с этим объектом.(Вы не можете сделать это из конструктора прямо сейчас: new Foo()->functionThatReturnsAnObject()
не будет работать, потому что команда PHP внутренностей полна людей, которые думают, что это каким-то образом сбивает с толку. Я не придумываю это.)