我是PHP的新手,我遇到了一个问题。
我有两个文件,index.php和test.php:
class Test {
private $name;
public function __construct($name) {
$this->name = $name;
}
public final function getName() {
return $this->name;
}
}
和
class Index {
private $testVar;
public function test() {
return $this->testVar = new Test('test');
}
public function print() {
echo $this->testVar->getName();
}
}
在Index.php中,我想打印Test.php的可访问功能,但这不会像这样工作。我收到以下错误:
致命错误:在第10行的/home/Index.php中的非对象上调用成员函数getName()
第10行是:echo $ this-> testVar-> getName();
我做错了什么?
答案 0 :(得分:0)
如果您想将testVar调用为$this->testVar->testFunction();
,则只能在具有私有变量$testVar
的类中的某个函数中使用此方法。如果你想在课外使用$testVar
,你必须创建getter:
public function getTestVar() {
return $this->testVar;
}
做完这样的事后:
$myClass = new MyClass();
$myClass->test();
echo $myClass->getTestVar()->testFunction();