2016-12-25 70 views
0

我有一個代碼結構是這樣的:如何爲所有方法創建一個對象?

class myclass{ 

    use App/classes/Log 

    public function myfunc1() { 

     $log_obj = new Log; 
     $log_obj->log('something1');  

    } 
    public function myfunc2() { 

     $log_obj = new Log; 
     $log_obj->log('something2'); 

    } 
    public function myfunc3() { 

     $log_obj = new Log; 
     $log_obj->log('something3'); 

    } 
} 

在現實中,我有12種方法,我需要做Log類的對象在其中的大多數。現在我想知道,是不是有更好的方法來做到這一點(製作對象)曾經?例如使用static屬性並將對象設置爲它或任何其他值。

+0

如果您需要調用的方法不是靜態的 - 那麼創建一個像您所做的對象是要走的路。 – 121c

+0

[在PHP5中創建Singleton設計模式]的可能副本(http://stackoverflow.com/questions/203336/creating-the-singleton-design-pattern-in-php5) –

+0

爲什麼不直接指定Log實例到myclass的屬性,並在$ this-> log這些函數中使用它。 –

回答

1

您可以使用__construct將Log實例分配給myclass的屬性。下面是訪問其他類中的一類方法的一個例子:

class Test { 
    public $var = 'test'; 

    public function show_var() { 
     echo $this->var; 
    } 
} 

class Test_2 { 
    protected $test; 

    public function __construct() { 
     $this->test = new Test; 
    } 

    public function show_test() { 
     $this->test->show_var(); 
    } 

} 

$test_2 = new Test_2; 

$test_2->show_test(); 

見行動here

相關問題