2014-02-11 81 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