0

类似于这个问题 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。

4

1 回答 1

3

试试这个:

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

大括号为$

于 2013-01-08T22:02:20.923 回答