繁体   English   中英

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

[英]How to access var from parent class inside a static function

如何在静态类/函数中从父类访问var?

(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;

您需要将属性设为静态,以通过静态方法访问它。 $ this在静态方法中不可用。 如果这样做,则可以通过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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM