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

ci中使用静态变量的问题

[复制链接]
发表于 2010-12-31 10:36:02 | 显示全部楼层 |阅读模式
我的代码如下
PHP复制代码
 
function test()
    {
       static $mystr;
          $mystr.="xxxx";
          echo $mystr."<br>";
 
    }
 
复制代码


在ci中永远只输出一次xxxx,字符串没有加上去。

我的ci中有很多方法需要调用同一个变量,我需要将这个变量弄成静态的(静态属性我也写过但是没用),我想问下这个问题要怎么解决?如果不能这样用静态变量,有没有什么处理办法?
发表于 2010-12-31 11:03:43 | 显示全部楼层
你这是类方法,还是普通的函数?
还有,你是在一次请求内,还是多次请求内?
静态变量,也只是在同一个请求内的同一个函数中使用有效果。
 楼主| 发表于 2010-12-31 17:09:04 | 显示全部楼层
只是普通的函数,是多次请求,那么应该怎么做?用缓存?
发表于 2011-1-2 03:52:50 | 显示全部楼层
PHP 本身不支持跨请求保存任何资源(包括变量,对象实例),也就是说每次请求完释放所有内存。
一般跨请求可以用 Session、数据库等保存数据。
当然第三方的缓存系统也是可以的,比如 memcached 等。
 楼主| 发表于 2011-1-3 09:05:05 | 显示全部楼层
ok
明白了
发表于 2011-1-6 15:45:29 | 显示全部楼层
这个解释好,开始我也有点模糊

本版积分规则