2015-04-22 74 views
0

我想寫一個類,使用其父的靜態聲明數組添加一個新的值。下面是怎麼樣的,我怎麼想運行它的感覺...OOP PHP:在子靜態元素的聲明中使用父類的靜態元素?

class SuperClass 
{ 

protected static $array_name = array('value1'); 

} 

class SubClass extends SuperClass 
{ 

protected static $array_name = array_push(parent::$array_name, 'value2'); 

} 

有沒有辦法正確地實現這個沒有__construct()函數?

我試圖實現對超及其父母的靜態工作模式......

+0

簡短的回答是:不,你不能在一個類的函數體之外擁有邏輯代碼。 – EJTH

回答

0

我不能完全肯定,如果你想完全靜態類,但是這是你想要給予或採取什麼樣的:

<?php 
class SuperClass 
{ 
    static $array_name = array('value1'); 
} 

class SubClass extends SuperClass 
{ 

    static $array_name = 'foo'; 
    function __construct(){ 

     self::$array_name = array_push(parent::$array_name, 'value2'); 
    } 
} 
$foo = new SubClass(); 
var_dump($foo::$array_name); // prints INT 2 - as push returns number of elements in array. 
?> 
+0

感謝您的幫助。我最終以不同的方式實現了這一點。我實際上是從一個SuperSuperClass創建一個新的對象實例...必須重新配置一些東西,但是這最終會起作用。 非常感謝! – Jingrah1

+0

很高興幫助,如果它確實幫助你,請隨時批准答案,如果沒有,請不要擔心:)當然是 – Patrick

+0

!對不起,忘了這麼做! – Jingrah1