你学过C语言没有?这个跟C里的用法我觉得是一样的,static $mystr;只有在第一次调用函数的时候才初始化变量。所谓静态变量,就是在程序结束前不释放为其开辟的变量空间,初始化后,该变量一直存在,直到程序结束。所以,静态的,只初始化一次, 普通的变量,是在函数调用结束后就释放,静态的保留。可以参考C里面的用法,
解决方案 »
- 初学PHP的一个问题?
- 【紧急】Apache在Win2003 server服务器上配置问题
- 126邮箱支持mail()函数么?
- sphinx 扩展模式
- 使用file_get_contents时,经常出现错误信息如下,高手帮忙看看这是怎么回事?
- 我的分页那里错了?mysql_fetch_array(): supplied argument is not a valid MySQL result resource i
- linux9+mysql+php4.3.10+apache2+gd2这个配置如何进行?我怎么就这么难呢?
- 请求帮助;我还需要怎么配置才能执行PHP程序?
- PHP调用WSDL接口并与之通信有问
- 请教, 多维数组获得最大值
- 关于php的form提交问题,在线等待.
- 大家喜欢去TOM还是去sina看新闻?
function myfunc() { $mystr.="哈";
echo $mystr."<br>\n";
}你说这段代码结果不对吗? 结果当然不对了,
因为这个静态变量没有定义在myfunc()函数中,对于myfunc()函数来说,static $mystr;是函数外部的变量,每次执行函数时,系统都会重新分配一个临时变量$mystr,而不是那个静态的$mystr;静态变量要在函数内部声明使用!ok!
function myfunc() { $mystr.="哈"; ------------局部变量
echo $mystr."<br>\n";
}