0

我正在尝试访问在另一个类中公开的函数的结果,但我不完全确定如何执行此操作。我试图访问的类需要参数,所以 class_name::function() 方法不起作用。我对使用课程仍然很陌生,并尝试学习它。

第一类:

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

2 级

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

这两个类是我实际在做的一个基本示例,但是从这里你应该对我的问题有一个大致的了解。
为了显示正确的结果,第一个类需要传递给它的参数,否则函数会失败。
我尝试使用 foo::bar(),但这不会将任何参数传递给第一类,因此它失败了。
那么,如何从 bar 的 secondFunc 中的 foo 访问 myFunc?

4

3 回答 3

1

您必须将 foo 的实例传递给 bar:

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();

那是你要的吗?

于 2013-02-24T09:23:56.437 回答
0

关于什么

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

或者你需要一条线?

于 2013-02-24T09:24:00.930 回答
0

您的示例不是很实用,但这是基本思想

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

或者...

public function secondfunc() {
    $foo = new foo();
    var_dump($foo->myFunc();
}
于 2013-02-24T09:24:36.227 回答