簡體   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