当前位置:编程学习 > php >>

局部变量的生命周期与循环叠加计算?

<? php
function addone() {
static $i=0 ;
$i=$i+1 ;
echo "\$i = $i<br>" ;
}
? >

<html>
<body>
<? php
addone() ;
addone() ;
addone() ;
?>

</body>
</html>

这段代码中,变量$i会被连续+1,书上说输出的结果是:
$i=1
$i=2
$i=3

这貌似和vb类编程有点不一样,当addone被执行第二遍时,虽然$i生命周期被保留了下来,但是在开始时,$i被设置为0了啊?($i=0)

根据vb类的编程来看,这样虽然$i的生命周期被保存,但由于开始设置了$i=0,所以输出结果还是

$i=1
$i=1
$i=1

啊??。。。。这怎么理解??和vb有点晕。。。
答案:
static变量只初始化一次:
static修饰一个属性字段,那么这个属性字段将成为类本身的资源,如果属性被修饰为static静态类资源,那么这个字段永远只有一个,也就是说不管多少个对象,操作的永远都只是属于类的那一块内存资源.

上一个:谁能教我电脑技术?
下一个:看完谭浩强C语言后看什么我手头有两本书一本是CPrimerPlus还有一本是数据结构

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,