【发布时间】:2013-01-08 21:57:36
【问题描述】:
类似于这个问题 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。
【问题讨论】:
-
我不知道你为什么被否决。不是我。作为记录,您的答案是正确的:self::${$arr}[] = 'a new element';
-
不,我的意思是,为什么您的问题被否决了?我觉得不应该。无论如何,我在下面添加了我的答案作为实际答案。
-
你打赌。由于您表示我的回答是正确的,请通过单击赞成/反对票计数器旁边的复选框将其标记为正确。
-
必须等待超时才能标记它。
标签: php class static variable-variables