与此问题类似 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。
答案 0 :(得分:3)
试试这个:
self::${$arr}[] = 'a new element';
花括号为$