Php 如何从静态函数内的父类访问var

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

如何从静态类/函数中的父类访问变量

(在oop和php方面仍然是一个难题;-))

小例子

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;