(PHP7) 请考虑以下代码,它尝试将函数分配给变量,然后确保仅调用一次。
class a{
static public $b;
static public function init(){
self::$b();
self::$b=function(){};
}
}
a::$b=function(){echo 'Here I do very heavy stuff, but will happen only in the first time I call init()';};
for($i=0;$i<1000;$i++){
a::init();
}
在php7中,它会给出一个错误,它希望a::$b
是一个字符串(要调用的函数名)。
如果我使用纯变量而不是静态成员,它将起作用
我的问题是,这是假设是否有效,或者是否有一个小的调整,我可以做这个工作没有纯粹的vars ?
答案 0 :(得分:5)