2017-01-22 194 views
-1

我在本地服務器上運行一個梨庫。該庫已經開發,使得子類中的靜態方法非靜態化。看看their documentation但是當我在本地服務器上運行庫(使用PHP 5.4)時,它會產生致命錯誤。不能使靜態方法非靜態

我也寫了一個非常簡單的PHP程序來複制它,它會產生相同的錯誤信息。

class Test { 
    static function mytest($num) { 
     return $num + 10; 
    } 
} 


class childTest extends Test { 
    function mytest() { 
     echo Test::mytest(10); 
} 
} 

「致命錯誤:無法使靜態方法測試:: mytest的()類childTest非靜態」

有誰知道如何同時運行這些梨庫解決這個錯誤,或者是因爲使用的純最新版本的PHP?

+1

爲什麼你需要使它非靜態?在文檔類中'DataObjects_Grp'是由庫用戶編寫的,對吧? –

+0

@GermanLashevich:靜態方法staticGet在子類中的非靜態方法staticGet(同名)中調用,它在我的php編譯器中創建胎兒錯誤。我已經提到了PHP版本。 – kta

+0

你可以編輯孩子班嗎? –

回答

0

這樣做:

class Test { 
    static function mytest($num) { 
     return $num + 10; 
    } 
} 


class childTest extends Test { 
    static function mytest() { 
     echo Test::mytest(10); 
    } 
} 

需要使用靜態構造函數

+2

儘管此代碼可能會回答問題,但提供有關如何解決問題和/或爲何解決問題的其他上下文可以提高答案的長期價值。 –