2015-04-22 77 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