Php 如何从静态函数内的父类访问var
如何从静态类/函数中的父类访问变量 (在oop和php方面仍然是一个难题;-)) 小例子Php 如何从静态函数内的父类访问var,php,class,static-members,Php,Class,Static Members,如何从静态类/函数中的父类访问变量 (在oop和php方面仍然是一个难题;-)) 小例子 class database{ public $dbTable = 'mysqltable'; } class install extends database{ public static function getTable(){ $this->dbTable;// not working self::dbTable;// not wo
class database{
public $dbTable = 'mysqltable';
}
class install extends database{
public static function getTable(){
$this->dbTable;// not working
self::dbTable;// not working
}
}
使用parent::,并确保扩展类中的变量也定义为static 应采取以下措施:
class database{
public static $dbTable = 'mysqltable';
}
class install extends database{
public static function getTable(){
parent::$dbTable;// working
}
}
PHP不支持从静态方法访问实例变量
如果将$dbTable设置为静态(将
public$dbTable='mysqltable';
更改为public static$dbTable='mysqltable';
),则可以从静态getTable()方法访问它,如下所示:parent::$dbTable代码> 您需要将属性设置为静态,以便以静态方法访问它$这在静态方法中不可用。如果这样做,您可以通过self或parent访问静态方法:
class database
{
public static $dbTable = 'mysqltable';
}
class install extends database
{
public static function getTable()
{
return array(self::$dbTable, parent::$dbTable);
}
}
var_dump(install::getTable());
看到了,即使我添加了static这个词,错误仍然存在。你添加了$符号了吗?父项::$dbTable;