• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php static

php 搞代码 3年前 (2022-01-23) 16次浏览 已收录 0个评论
文章目录[隐藏]

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@本文来源gaodai$ma#com搞$代*码6网搞代gaodaima码中往回跳很简单啊,就是一个链接,www.xxxx.com/index.php/A/f2,这样就跳回来了

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

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php static

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址