<?php
function testStatic() {
static $val = 1;
echo $val;
$val++;
}
testStatic(); //output 1
testStatic(); //output 2
testStatic(); //output 3
echo $val; //output nothing
echo '<hr/>';
function testStatic2() {
global $val2;
$val2++;
echo $val2;
}
testStatic2(); //output 1
testStatic2(); //output 2
testStatic2(); //output 3
echo $val2; //3
echo '<hr/>';
?>
網(wǎng)上查了很多資料,感覺都沒講到根本.只是手冊中提到過引用一詞但也并無詳述.此代碼的對比也只是表達(dá)我個人的理解.個人對靜態(tài)變量的理解是:靜態(tài)局部變量與global極為相似,都是代表引用,只不過被引用的變量不可訪問而已!而此代碼static $val=1代表第一次函數(shù)執(zhí)行時同時創(chuàng)建局部變量$val和靜態(tài)區(qū)的變量$val,局部$val引用靜態(tài)區(qū)的$val,并且靜態(tài)區(qū)$val賦初值為1,后續(xù)每次調(diào)用函數(shù),就創(chuàng)建新的局部$val并直接引用靜態(tài)區(qū)$val,不賦初值,但是不能在函數(shù)外面訪問靜態(tài)區(qū)的$val 問題就是靜態(tài)局部變量是這么回事嗎?
- 3 回答
- 0 關(guān)注
- 409 瀏覽
添加回答
舉報
0/150
提交
取消