设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
控制器成员变量会丢失值 怎么回事?
返回列表
查看:
2114
|
回复:
2
[HELP]
控制器成员变量会丢失值 怎么回事?
[复制链接]
hgl
hgl
当前离线
积分
11
IP卡
狗仔卡
发表于 2012-8-22 14:12:23
|
显示全部楼层
|
阅读模式
我想用控制器的成员变量记录一些信息,示例代码如下:
class test extends CI_Controller {
private $data;
public function set($i) {
$this->data = $i;
$data = $this->data;
echo "设置data为:$data";
echo anchor('test/get', '查看data');
}
public function get() {
$data = $this->data;
echo "data为:$data";
}
}
但是我用URL调用set()函数设定好$this->data的值之后,再用URL调用get(),结果总是发现 $this->data 没有值,页面显示只有:
data为:
后面没了。。。。
后来我怀疑是这样的:CI每次用URL调用test的成员函数时,都会生成新的test类实例,因此两个函数中
$this->data
对应不同实例中的成员
$data
。所有就对程序做了如下改动(把$data由成员改为了静态成员):
class test extends CI_Controller {
static private $data;
public function set($i) {
self:
data = $i;
$data = self:
data;
echo "设置data为:$data";
echo anchor('test/get', '查看data');
}
public function get() {
$data = self:
data;
echo "data为:$data";
}
}
但是还是不行,结果一样。这就感觉有点无法解释了。。。
请问大家该怎么解决!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
qq494686707
qq494686707
当前离线
积分
558
IP卡
狗仔卡
发表于 2012-8-22 18:14:28
|
显示全部楼层
可以用 session 来传递值
回复
支持
反对
使用道具
举报
显身卡
hgl
hgl
当前离线
积分
11
IP卡
狗仔卡
楼主
|
发表于 2012-8-22 21:54:08
|
显示全部楼层
qq494686707 发表于 2012-8-22 18:14
可以用 session 来传递值
嗯,我也想过这个方案,主要觉得没有直接用类成员传值优雅快捷、不易混淆
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页