2013-02-24 59 views
0

我想訪問在另一個類中公開的函數的結果,但我不完全確定如何執行此操作。我試圖訪問的類需要參數,所以class_name :: function()方法不起作用。我仍然對與課程合作以及嘗試學習它很陌生。使用一個在另一個類中具有參數的類(PHP)

類別之一:2

class bar { 
    public function secondFunc() { 
    var_dump(**RESULT FROM foo->myFunc HERE); 
    } 
} 

這兩個類

class foo { 
    private $var1; 
    function __construct($param) { 
    $this->var1 = $param 
    } 
    public function myFunc() { 
    echo $this->var1; 
    } 
} 

類是什麼,我實際上做一個簡單的例子,但是從這個你應該得到我的問題的總體思路。
要顯示正確的結果,第一個類需要傳遞給它的參數,否則該函數將失敗。
我嘗試使用foo :: bar(),但是這不會將任何參數傳遞給第一個類,並且因此失敗。
那麼,如何從bar中的secondFunc中的foo訪問myFunc?

回答

1

你要通過FOO的實例吧:

class Foo { 

    private $var1; 

    function __construct($param) { 

    $this->var1 = $param 
    } 

    public function myFunc() { 

    return $this->var1; 
    } 
} 

class Bar { 

    private $foo; 

    function __construct(Foo $foo) { 

    $this->foo = $foo 
    } 

    public function secondFunc() { 

    var_dump($this->foo->myFunc()); 
    } 
} 

$bar = new Bar(new Foo('something')); 
$bar->secondFunc(); 

這是你想要的嗎?

+0

此方法處理。感謝您的輸入。 – Johnno13 2013-02-24 10:28:45

0

什麼

class bar { 
    public function secondFunc() { 
    $foo = new foo($param); 
    var_dump($foo->myFunc()); 
    } 
} 

還是需要在一行的東西嗎?

0

你舉的例子不是很實用,但這裏的基本思想是

public function secondFunc($dependency) { 
    var_dump($dependency->myFunc()); 
} 

或...

public function secondfunc() { 
    $foo = new foo(); 
    var_dump($foo->myFunc(); 
} 
相關問題