如何避免重复使用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(); 并具有类的一个实例化。

希望有帮助!

结束

相关推荐

Ajax with OOP doesn't work

我在theme的functions.php 使用ajax的文件,原理如下:add_action(\'admin_head\', \'rw_script\'); function rw_script() { echo \' <script type=\"text/javascript\"> // delete image $(\".delete_image\").click(function(){