动态修改静态变量变量数组

时间:2013-01-08 21:57:36

标签: php class static variable-variables

与此问题类似 Dynamically call a static variable (array) ,但是要写入变量。

我尝试在构造函数中初始化一些静态数组,但无法弄清楚如何动态编写其名称。

当我尝试这个时:

class MyClass {
    public static $something1 = array();
    public static $something2 = array();

    function __construct() {
        for( $i = 1; $i <= 2; $i++ ){
            $arr = "something{$dynamic}";
            self::$$arr[] = "a new element";
        }
    }
}

即使我没有调用构造函数,我也会收到此错误:

Fatal error: Cannot use [] for reading

有没有办法在不使用eval的情况下完成此操作?我使用的是PHP 5.4。

1 个答案:

答案 0 :(得分:3)

试试这个:

self::${$arr}[] = 'a new element';

花括号为$

提供了适当的范围