【发布时间】:2013-02-14 09:10:25
【问题描述】:
我在父类中有受保护的变量 UserId。我将在我的子类中扩展该变量,如下所示
class Main
{
protected $UserId = "151";
protected static $UserName = "Madhavan";
protected function SampleMethod()
{
print "This is Sample Method";
}
}
class SubMain extends Main
{
function __construct()
{
print parent::SampleMethod();
print "User Id is ".$this->UserId."<br/>";
print parent::$UserName;
print "User Id is ".parent::$UserId."<br/>";
}
}
当我使用 $this->UserId 打印正常。但是当我使用 Parent::$UserId 时显示错误
致命错误:访问未声明的静态属性:Main::$UserName
为什么它没有显示我通过 parent::SampleMethod() 访问的函数,因为该函数不是静态的。
【问题讨论】:
-
php static function 的可能重复项
-
$UserName被声明为静态,您需要使用static::访问它,例如static::$UserName
标签: php