2013-02-24 80 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(); 
} 
相关问题