Is it possible to have a method return different values depending on context (how the return value is used)? For example, could a method return $this
when it's then used with the arrow operator to call another method (i.e. chaining method calls), but return a scalar when the return value isn't used this way?
Case 1:
$result = $test->doSomething1(); // returns 4
// $result returns 4
Case 2:
$result = $test->doSomething1()->doSomething2();
// doSomething1() returns $this
// doSomething2() returns 8
Is there anyway to perform such a behaviour?