PHP静态变量

今天去图书馆借了一本《PHP网络编程 技术与实践》程伟 孙红丽著,原打算找兄弟连的《细说PHP》,可惜被人借走了,后来找来找去找了这本书,看看内容相对还算全面些。可惜在看到59页关于静态变量的时候就犯糊涂了,虽然PHP之前接触得很少,但C#,JAVA全练过,难不成到了PHP中就变了,然不成PHP的创始人另类,将书中原程序拷贝到环境中运行了一下,原来不是PHP创始人另类,而是书中作者另类,程序写错了,而且校对也没看出来,想想,现在的书啊,唉,误人子弟。下面把原创录下:

<?php

function myfunc()
{
static $int;

$int=0;

echo $int+1."<br/>";
}
echo myfunc();
echo myfunc();
echo myfunc();

?>

书中结果三个值分别为1,2,3

 

然而真实结果是无法运行,语法错误,后检查错误的原因在于$int+1."<br/>"这句的写法,应该写成($int+1)."<br/>",改过来后程序不报错了,但值却是1,1,1;其实这个也不难解释,$int虽然在不停的加1,但所得结果并没有再次赋给$int,谈什么$int会递增,后来经测试将程序改成如下,终于可以得出运行结果:

 

<?php

function myfunc()
{
static $int=0;
$int=$int+1;
echo $int."<br/>";
}
echo myfunc();
echo myfunc();
echo myfunc();

?>

注意,static关键字必须和赋值在一起,如果按书中写在

staitc $int;

$int=0;

这样的结果也是错误的,运行后的结果同样也是1,1,1

 

从这可以看出,在这个例子上,书中就错了三处,真是搞不懂,校对干嘛的,浮躁啊。好久没一点点的去看一些书中代码了,想不到静下心来看点东西就看到这样的东西。继续,近期要玩一个PHP项目,得好好学习一下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值