不是幾句話好不同類型的變種,是我想要做的是:方法返回根據上下文
返回字符串
$obj->method();
在這種情況下,我想
method()
到返回一個對象$obj->method()->method2();
這可能嗎? 如果可能的話,有人可以幫助我嗎?
不是幾句話好不同類型的變種,是我想要做的是:方法返回根據上下文
返回字符串
$obj->method();
在這種情況下,我想method()
到返回一個對象
$obj->method()->method2();
這可能嗎? 如果可能的話,有人可以幫助我嗎?
號的method()
方法不能知道它是否將使用作爲一個字符串或作爲對象。你可以這樣做的唯一的事情來有點接近你的預期是將它與一個__toString()
方法返回一個對象:
<?php
class YourObject {
public function method2() {
// ...
}
public function __toString() {
return 'some string';
}
}
?>
,並有$obj->method()
回報這個類的一個實例。您可以使用該字符串(echo $obj->method();
)以及對象($obj->method->method2();
)。
我想這是解決這個問題的一種方法。取決於返回後如何使用它。 –
Thx!它符合我的要求! – Julien
傳遞一個簡單的布爾值給方法來告訴它返回什麼。
被調用的方法不知道它在哪個上下文中被調用。所以它不能確定它是否應該返回結果或它自己。 – ToBe
你可以傳遞一個參數給'method()來告訴它返回什麼。 –
請停止嘗試將* magic *添加到您的代碼中。這總是一個可怕的想法。 –