用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2662|回复: 3
收起左侧

[讨论/交流] 怎么存储在静态变量,有什么好处

[复制链接]
发表于 2011-12-12 14:33:10 | 显示全部楼层 |阅读模式
看了些教程说   常需要调用的东西存储在静态变量 比较好。,直接访问内存就行了。
请问静态变量的生存周期是什么。如何测试静态变量是存储在内存中的啊。我定义了一个静态变量并赋值很大。用360查看内存好象没什么变化。
如果存储静态变量比较好的话,是不是网站所有产品内容都放在静态变量比较好呢。如何正确的使用好静态变量?

发表于 2011-12-12 16:47:43 | 显示全部楼层
你这个事缓存还是静态变量啊,感觉有点迷惑
发表于 2011-12-12 20:08:07 | 显示全部楼层
静态变量只在你的一个线程周期内生效的撒
发表于 2011-12-12 22:00:14 | 显示全部楼层
本帖最后由 五点晨曦 于 2011-12-12 22:01 编辑

看了些教程说   常需要调用的东西存储在静态变量 比较好。,直接访问内存就行了。
这句话放在C#或者JAVA里面或者是对的,但在PHP里面完全是错的,因为PHP的运行机制跟前面两种语言完全不同。
PHP每次有http请求都会重新初始化所有资源,然后在处理完该http请求以后释放所有资源,对于每个连接都是如此,包括用static关键字定义的所谓的“静态变量”。

回答楼主的问题:静态变量的生存周期就是一次http请求,十分短暂。就算你定义了一个类,里面有个静态变量a=0,代码里面每次http访问都  a++ 然后echo a,但你每次都只会看见a=1。因为PHP根本就没有完整意义的static,PHP的static变量只是允许你不实例化对象就通过类名引用,但却无法常驻内存,单纯地使用static变量对于性能不会有什么提升。
如果要提升网站性能,LZ要找的东西不是静态变量,而是zend optimizer和memcached

点评

OK.  发表于 2011-12-13 10:29

本版积分规则