如何避免重复使用NEW语句实例化一个类? 时间:2011-06-19 作者:Jenny 我有一个有很多变量的类。要获取变量,我必须在每个函数中写入以下行:$x = new MY_Class(); 我想一定还有别的办法?我试过:function my_data(){ global $x; $x = new MY_Class(); return apply_filters( \'my_data\', $x ) } 然后,我尝试使用$x->var 在其他需要变量但不起作用的函数中。我怎样才能global $x 以及其他函数可以访问的变量?谢谢 1 个回复 SO网友:John P Bloch 你在上面所做的方式应该是可行的。一旦变量在全局范围内声明,它应该是全局可用的(当然,您的函数仍然需要将其声明为全局:global $x;). 您也可以使用$GLOBALS 超全局变量:global $x; $x->var; 与相同$GLOBALS[\'x\']->var; 我个人会在函数中使用静态变量:function my_data(){ static $data = null; if(null === $data) $data = new MY_Class(); return $data; } 然后在代码中的任何地方,您都可以编写$vars = my_data(); 并具有类的一个实例化。希望有帮助! 结束 文章导航