我正在尝试访问另一个类中公共函数的结果,但我不完全确定如何执行此操作。我正在尝试访问的类需要参数,因此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?
答案 0 :(得分: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();
这就是你想要的吗?
答案 1 :(得分:0)
怎么样?
class bar {
public function secondFunc() {
$foo = new foo($param);
var_dump($foo->myFunc());
}
}
或者您需要一行中的某些内容吗?
答案 2 :(得分:0)
你的例子不太实用,但这是基本的想法
public function secondFunc($dependency) {
var_dump($dependency->myFunc());
}
...或
public function secondfunc() {
$foo = new foo();
var_dump($foo->myFunc();
}