我有这堂课:
class TestClass
{
var $testvar;
public function __construct()
{
$this->$testvar = "Hullo";
echo($this->$testvar);
}
}
这种访问方法:
function getCurrent()
{
$gen = new TestClass();
}
我收到以下错误:
注意:未定义的变量:第28行的/Users/myuser/Sites/codebase/functions.php中的testvar
致命错误:无法访问第28行/Users/myuser/Sites/codebase/functions.php中的空属性
发生了什么事?
答案 0 :(得分:6)
访问变量时不需要使用变量引用:
$this->testvar;
通过使用$this->$testvar
,您的PHP脚本将首先查找$testvar
,然后在您的类中按该名称查找变量。即。
$testvar = 'myvar';
$this->$testvar == $this->myvar;
答案 1 :(得分:3)
在调用它之前删除testvar之前的$:
$this->testvar = "Hullo";
echo($this->testvar);
答案 2 :(得分:2)
由于 var 已被弃用,我建议将其声明为私有,公开或受保护。
class TestClass
{
protected $testvar;
public function __construct()
{
$this->testvar = "Hullo";
echo $this->testvar;
}
}