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不彻底吗?
将 self::$num 改为 A::num 试试
效果还是一样的……是不是不可能实现这个过程啊?重新通过url进入某个controller,之前这个controller的static成员还保留着。
@qq690388648: 推荐阅读:http://php.net/manual/en/language.variables.scope.php
@dudu: 看了那个,可能真是不能实现重新访问这个网页之后还保留着原来的变量吧……