类实例作为变量?

时间:2014-06-21 17:15:58

标签: php

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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您想将testVar调用为$this->testVar->testFunction();,则只能在具有私有变量$testVar的类中的某个函数中使用此方法。如果你想在课外使用$testVar,你必须创建getter:

public function getTestVar() {
      return $this->testVar;
}

做完这样的事后:

$myClass = new MyClass();
$myClass->test();
echo $myClass->getTestVar()->testFunction();