php static

WBOY
풀어 주다: 2016-06-23 14:18:41
원래의
1089명이 탐색했습니다.

php static oop

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不彻底吗?

回复讨论(解决方案)

"然后在v1中又跳回f2"
你是怎么跳的?

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

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

"然后在v1中又跳回f2"
你是怎么跳的?

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

我感觉你需要的是“单例模式”的 A
先不说单利模式,v1中往回跳很简单啊,就是一个链接,www.xxxx.com/index.php/A/f2,这样就跳回来了

那你就在开玩笑了!你从url进入,还能回到原来的现场吗?

那你就在开玩笑了!你从url进入,还能回到原来的现场吗?
啊?好吧……我是凭直觉这么想的。。
我认为这个class在载入内存之时就有num这个变量,而且因为它是static的,所以不会因为页面跳转引发的对象消亡而被释放,所以在再次进入之时,num还应该是对象消亡之前的样子。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!