2014-01-14 81 views
0

不是幾句話好不同類型的變種,是我想要做的是:方法返回根據上下文

  1. 返回字符串

    $obj->method(); 
    
  2. 在這種情況下,我想method()到返回一個對象

    $obj->method()->method2(); 
    

這可能嗎? 如果可能的話,有人可以幫助我嗎?

+2

被調用的方法不知道它在哪個上下文中被調用。所以它不能確定它是否應該返回結果或它自己。 – ToBe

+0

你可以傳遞一個參數給'method()來告訴它返回什麼。 –

+0

請停止嘗試將* magic *添加到您的代碼中。這總是一個可怕的想法。 –

回答

2

號的method()方法不能知道它是否將使用作爲一個字符串或作爲對象。你可以這樣做的唯一的事情來有點接近你的預期是將它與一個__toString()方法返回一個對象:

<?php 

class YourObject { 
    public function method2() { 
     // ... 
    } 

    public function __toString() { 
     return 'some string'; 
    } 
} 

?> 

,並有$obj->method()回報這個類的一個實例。您可以使用該字符串(echo $obj->method();)以及對象($obj->method->method2();)。

+0

我想這是解決這個問題的一種方法。取決於返回後如何使用它。 –

+0

Thx!它符合我的要求! – Julien

0

傳遞一個簡單的布爾值給方法來告訴它返回什麼。

相關問題