服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > php教程 >

php static 变量的例子

时间:2016-02-16 00:19来源: 作者: 点击:
php变量范围的另一个重要特性是静态变量(static variable),静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失,看看下面的例子: class test { public static function a(){} p
php变量范围的另一个重要特性是静态变量(static variable),静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失,看看下面的例子:
 
class test  
{  
public static function a(){}  
public function b(){}  
}  
$obj = new test; 
//调用 代码如下: 
test::a();  
$obj->a();  
$obj->b(); 
例子,演示需要静态变量的例子:
 
<?php 
class myobject { 
 public static $mystaticvar = 0; 
 function mymethod() { 
  // ::为作用域限定操作符 
  // 用的self作用域而不是$this作用域 
  // 因为$this只表示类的当前实例,而self::表达的是类的本身 
  self::$mystaticvar += 2; 
  echo self::$mystaticvar . "<br />"; 
 } 
$instance1 = new myobject(); 
$instance1->mymethod();  // 显示 2 
$instance2 = new myobject(); 
$instance2->mymethod();  // 显示 4 
?> 
<?php 
class myobject { 
 public static $myvar = 10; 
echo myobject::$myvar; 
// 结果: 10 
?> 
本函数没什么用处,因为每次调用时都会将 $w3sky 的值设为 0 并输出 "0",将变量加一的 $w3sky++ 没有作用,因为一旦退出本函数则变量 $w3sky 就不存在了,要写一个不会丢失本次计数值的计数函数,要将变量 $w3sky 定义为静态的:
 
例子,使用静态变量的例子:
 
<?php 
   function test() 
   { 
   static $w3sky = 0; 
   echo $w3sky; 
   $w3sky++; 
   } 
?> 
现在,每次调用 test() 函数都会输出 $w3sky 的值并加一.看个实例:
 
<?php  
class foo  
{  
public static $my_static = 'foo';  
public function staticvalue() {  
return self::$my_static;  
}  
}  
class bar extends foo  
{  
public function foostatic() {  
return parent::$my_static;  
}  
}  
print foo::$my_static . "n";  
$foo = new foo();  
print $foo->staticvalue() . "n";  
print $foo->my_static . "n"; // undefined "property" my_static  
print $foo::$my_static . "n";  
$classname = 'foo';  
print $classname::$my_static . "n"; // php 5.3.0之后可以动态调用  
print bar::$my_static . "n";  
$bar = new bar();  
print $bar->foostatic() . "n";  
?> 
(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容