-
-
function myfunc()
- {
- static $int;
$int=0;
echo $int+1." ";
- }
- echo myfunc();
- echo myfunc();
- echo myfunc();
?>
-
复制代码
书中结果三个值分别为1,2,3
然而真实结果是无法运行,语法错误,后检查错误的原因在于$int+1." "这句的写法,应该写成($int+1)." ",改过来后程序不报错了,但值却是1,1,1;其实这个也不难解释,$int虽然在不停的加1,但所得结果并没有再次赋给$int,谈什么$int会递增。
将代码修改为如下内容,才算正确了:
-
-
function myfunc()
- {
- static $int=0; //php静态变量定义
- $int=$int+1;
- echo $int."
";
- }
- echo myfunc();
- echo myfunc();
- echo myfunc();
- ?>
复制代码
注意,static关键字必须和赋值在一起(php static静态变量修饰符的用法),如果按书中写在
staitc $int;
$int=0;
错误,运行后的结果同样也是1,1,1
|