当前位置:Gxlcms > PHP教程 > PHP的static静态变量

PHP的static静态变量

时间:2021-07-01 10:21:17 帮助过:17人阅读

静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。就是说,下次再调用这个函数的时候,该变量的值会保留下来。

只要在变量前加上关键字static,该变量就成为静态变量了。

  1. <!--?php
  2. function test()
  3. {
  4. static $nm = 1;
  5. $nm = $nm * 2;
  6. print $nm."<br /-->";
  7. }
  8. // 第一次执行,$nm = 2
  9. test();
  10. // 第一次执行,$nm = 4
  11. test();
  12. // 第一次执行,$nm = 8
  13. test();
  14. ?>

程序运行结果:

2

4

8

函数test()执行后,变量$nm的值都保存了下来了。

在class中经常使用到静态属性,比如静态成员、静态方法。

Program List:类的静态成员

静态变量$nm属于类nowamagic,而不属于类的某个实例。这个变量对所有实例都有效。

::是作用域限定操作符,这里用的是self作用域,而不是$this作用域,$this作用域只表示类的当前实例,self::表示的是类本身。

view source

print?

  1. <!--?php
  2. class nowamagic
  3. {
  4. public static $nm = 1;
  5. function nmMethod()
  6. {
  7. self::$nm += 2;
  8. echo self::$nm . '<br /-->';
  9. }
  10. }
  11. $nmInstance1 = new nowamagic();
  12. $nmInstance1 -> nmMethod();
  13. $nmInstance2 = new nowamagic();
  14. $nmInstance2 -> nmMethod();
  15. ?>

程序运行结果:

3

5

人气教程排行