Если я правильно понимаю вопрос, вы хотите, чтобы метод (doSomething1
) возвращал значение, основываясь на том, как выглядит остальная часть цепочки вызовов. К сожалению, нет абсолютно никакого способа сделать это.
Общие парадигмы программирования, общие для "всех" языков (как методы, операторы и такие работают в контексте грамматики), требуют, чтобы результат выражения $this->doSomething1()
был обработан до результата возможного вызова ->doSomething2()
на это можно посчитать. Статически типизированные и динамически типизированные языки делают это по-разному, но общий фактор заключается в том, что выражение $this->doSomething1()
должно рассматриваться независимо от того, что следует или не следует.
В двух словах: $this->doSomething1()
должен возвращать определенный тип значения в обоих случаях. И в PHP нет способа иметь тип значения, который может вести себя как число в одном контексте и как объект с методами для вызова в другом.