日期:2014-05-17  浏览次数:20566 次

php static
RT,用CI框架在写一个php网页,现发现static关键字不太会用,简化代码如下:

class A extends CI_Controller{
    private static $num = 0;
    public function f1(){
        self::$num = 1;
        this->load->view('v1');
    }
    public function f2(){
        if(self::$num === 1){
            this->load->view('v2');            
        }else{
            this->load->view('v3');
        }
    }
}

刚开始我们访问函数f1,在f1中跳转到页面v1,然后在v1中又跳回f2,但是此时的num已经被重置了,会跳转到v3,这是为什么呢?php中的static不彻底吗?
php static oop

------解决方案--------------------
"然后在v1中又跳回f2"
你是怎么跳的?

如果是在 v1 中由实例化了 A ,那么 num 当然要被重置

我感觉你需要的是“单例模式”的 A