看看下面的实例:
复制代码代码如下:
functionTest()
{
$w3sky=0;
echo$w3sky;
$w3sky++;
}
?>
本函数每次调用时都会将$w3sky的值设为0并输出"0"。将变量加一的$w3sky++没有其到效果,因为一旦退出本函数则变量$w3sky就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量$w3sky定义为静态(static)的:
如下:
复制代码代码如下:
functionTest()
{
static$w3sky=0;
echo$w3sky;
$w3sky++;
}
?>
本函数每调用Test()都会输出$w3sky的值并加一。
静态变量也提供了一种处理递归函数的方法。递归函数是一种自己调用自己的方法。写递归函数时要小心,因为可能会无穷递归下去,没有出口.务必确保有方法来中止递归。以下这个简单的函数递归计数到10,使用静态变量$count来判断何时停止:
静态变量与递归函数的例子:
复制代码代码如下:
functionTest()
{
static$count=0;
$count++;
echo$count;
if($count<10){
Test();
}
$count--;
}
?>
注:静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。
声明静态变量例子:
复制代码代码如下:
functionfoo(){
static$int=0;//correct
static$int=1+2;//wrong(asitisanexpression)
static$int=sqrt(121);//wrong(asitisanexpressiontoo)
$int++;
echo$int;
}
?>
您可能感兴趣的文章:PHPabstract与interface之间的区别深入解读php中关于抽象(abstract)类和抽象方法的问题分析PHPabstract抽象类定义与用法示例详谈PHP中public,private,protected,abstract等关键字的用法PHP抽象方法与抽象类abstract关键字介绍及应用PHP面向对象final类与final方法php类中的$this,static,final,const,self这几个关键字使用方法PHP面向对象的进阶学习(抽像类、接口、final、类常量)php中final关键字用法分析php面向对象中static静态属性和静态方法的调用PHP中的静态变量及static静态变量使用详解PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解