zfgf 发表于 2010-12-31 10:36:02

ci中使用静态变量的问题

我的代码如下

function test()
    {
       static $mystr;
          $mystr.="xxxx";
          echo $mystr."<br>";

    }


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

我的ci中有很多方法需要调用同一个变量,我需要将这个变量弄成静态的(静态属性我也写过但是没用),我想问下这个问题要怎么解决?如果不能这样用静态变量,有没有什么处理办法?

Hex 发表于 2010-12-31 11:03:43

你这是类方法,还是普通的函数?
还有,你是在一次请求内,还是多次请求内?
静态变量,也只是在同一个请求内的同一个函数中使用有效果。

zfgf 发表于 2010-12-31 17:09:04

只是普通的函数,是多次请求,那么应该怎么做?用缓存?

Hex 发表于 2011-1-2 03:52:50

PHP 本身不支持跨请求保存任何资源(包括变量,对象实例),也就是说每次请求完释放所有内存。
一般跨请求可以用 Session、数据库等保存数据。
当然第三方的缓存系统也是可以的,比如 memcached 等。

zfgf 发表于 2011-1-3 09:05:05

ok
明白了

lcnphp 发表于 2011-1-6 15:45:29

这个解释好,开始我也有点模糊
页: [1]
查看完整版本: ci中使用静态变量的问题