2014-02-11 27 views
1

必須瞭解OOP鏈接:PHP OOP - 如何調用主功能和子功能

$data = new myclass; 
$data->sub_function()->main_function(); 

但現在我希望將代碼它看起來像這樣:

$data = new myclass; 
$main = $data->main_function(); 
$sub = $main->sub_function(); 

如果是這樣如何會爲此寫類功能?

請幫幫我!

+0

其他的方式......所以: $數據=新MyClass的; $ sub = $ data-> sub_function(); $ main = $ sub> main_function(); 由於這正好等於你的第一篇文章中,只有您使用的是臨時變量,而不是直接鏈接它 – Tularis

+0

這些可以幫助你, 1. http://stackoverflow.com/questions/2990952/php- oop-method-chain 2. http://stackoverflow.com/questions/125268/chaining-static-methods-in-php –

+0

使用'流暢的接口':sub_function()必須返回'$ this' –

回答

5
class myclass { 

    public function main_function() { 
     //Do your actions here 
     return $this; 
    } 

    public function sub_function() { 
     //Do your actions here 
     return $this; 
    } 
} 
0
class myclass { 
    public function main_function() { 
     return 'MAIN '; 
    } 
    public function sub_function($str) { 
     if ($str == 1) $result = 'SELECT 1'; 
     else if ($str == 2) $result = 'SELECT 2'; 
     else $result = 'NOT FOUND'; 
     return $result; 
    } 
} 
$data = new myclass; 
$main = $data->main_function(); 
$sub = $main->sub_function(1); 
echo $sub; // Fatal error: Call to a member function sub_function() on a non-object... 

我需要在每個功能(未設定值/鍵)返回字符串

+0

因爲'$ main'只是字符串'MAIN',請嘗試'$ data-> sub_function(1);' –

+0

另外,這應該是對原始文章的編輯,而不是回答#1 –

+0

謝謝,但id需要'$ data-> main_function() - > sub_function' – UserNaN