php实现全局静态变量类的一种实现方式

变量|静态

下面是一个全局静态变量类,类里面的函数都是静态函数,

注意里面的符号"&",他用来进行地址引用的.如果对引用方式不熟悉,请先参考php手册中的相关的章节.

另外本例是仿照php的pear类库中,pear.php中的静态全局error的方法实现的.

<?
class StatVar{
  function &setInit(){
    static $static = '';
    return $static;
  }
  function set($key,$value){
    $var = &StatVar::setInit();
    $var[$key] = $value;
  }
  function &get($key){
    $var = &StatVar::setInit();
    return $var[$key];
  }
}
//例子如下:
StatVar::set('aa', 'bb');
echo StatVar::get('aa');
?>

 

 

时间: 2024-11-02 03:08:32

php实现全局静态变量类的一种实现方式的相关文章

ios-在objective-c中使用全局/静态变量

问题描述 在objective-c中使用全局/静态变量 保存用作方法的变量,然后在另一个方法中调用.实现时会不会用到全局/外部/静态变量?如果需要应该怎么用? 我试过用全局和静态,但是都失败了. 代码中用来保存newX 和 newY 的信息. -(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{... int newX = (int)(Button.

static-多个包含静态变量类的加载顺序???

问题描述 多个包含静态变量类的加载顺序??? 有三个类,SingletonCounter.Test.Singleton,里面都包含了静态变量,SingletonCounter.Test结构差不多,Singleton包含了静态构造函数,静态属性等,将三个类的行都打上断点(需要断点的行有注释--加断点调试),当调试的时候,为什么总是最后执行到SingletonCounter的静态变量instance上??? 测试了很多,和Singleton类的静态构造函数有关,望指点一二,谢谢!!! using S

全局变量与全局静态变量的区别

全局变量与全局静态变量的区别: (a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别. (b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的. 静态全局变量的作用: (a)不必担心其它源文件使用相同变量名,彼此相互独立. (b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改. 例如:一个程序由两个源文件组成,其中在一个源文件中定义了"int n;",在另一个源

PHP static局部静态变量和全局静态变量总结

 使用静态局部变量的原因是它不能被外部使用,但是它的值依然在没此使用后保留.虽然使用全局变量可以实现相同的功能,但是它经常会造成意外 静态局部变量的特点:   1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它.倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值 2.静态局部变量只会初始化一次 3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式.即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变

PHP static局部静态变量和全局静态变量总结_php技巧

静态局部变量的特点: 1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它.倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值2.静态局部变量只会初始化一次3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式.即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量):静态变量的初始值为0.4.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量.虽然用全局变量也可以达到上述目的

struts2 指向映射文件信息的全局静态变量是谁!

问题描述 已知一个路径:/userInfo/load根据这个路径在内存中定位它所对应的Action有没有类似WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext()).getBean("")这样的方式读取Action配置对象在线急求.....

全局静态存储区、堆区和栈区深入剖析_C 语言

在C++中,内存可分为系统数据区,自由存储区,文本区,const数据区,全局静态区,堆区和栈区.其中,系统数据区存放的是系统数据,我们是不能自由访问的,有时候windows系统会突然弹出一个消息框,内容是"内存不能为read"就是错误访问系统数据区的结果:自由存储区用来存放由C延伸而来的malloc()函数所分配的数据:文本区存放着我们的函数代码,我们调用函数时的底层行为就类似于先去操作一个指针,而这个指针就指向函数指令所在的地址,也就是在文本区中:const数据区,顾名思义,就是存放

php中static 静态变量和普通变量的区别

在变量的前面加上static 就构成了静态变量(static 变量). static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的. 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它.由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误. static变量和普通变量的区别: static全局变量与普通

C/C++ 静态变量解析

静态变量:这种变量的内存将保存到整个程序的结束,他的内存是独立存放到一个叫做静态内存区的.           所有的静态的变量如果不赋值,会默认赋值为0,不管是结构体还是其他类型的变量,           当然静态变量的初始化也分为静态初始化和动态初始化,如果有一些不可确定的因素会使用           动态初始化           比如:           int a = 1;静态初始化.           double a = sqrt(2);动态初始化因为sqrt是一个不确定的