Controller 中不同的函数如何访问 类的 public 变量
论坛朋友们好,我刚学习CI 遇到一个问题:我在某个 controller 中定义了一个 Public 的变量, 在第一个方法中,获得了我从表单中post了个值,赋值给了public 变量$InputString,之后输出确实成功被修改了。
在第二个方法中,我需要用到 $InputString 的值,但是实际上,我访问 第二个方法 output 时,没法获得,得到的是 $InputString 为空值。
请问如何在 controller 的不同函数 在类中 共同都能够访问某些变量? 谢谢。
class Test extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper('form');
}
public $InputString = "";
function input() {
$this->InputString = $this->input->post('quickSearch‘);
}
function output(){
echo ($this->InputString);
}
} 你可以在core下建一个类作为你这些类的父类,例如MY_parentcls,那么这个MY_parentcls就继承CI_Controller,你建立的控制器就继承这个MY_parentcls terminus 发表于 2013-5-9 10:20 static/image/common/back.gif
你可以在core下建一个类作为你这些类的父类,例如MY_parentcls,那么这个MY_parentcls就继承CI_Controller,你 ...
谢谢楼上的回答。可能我表述不够清楚,我不是要在不同的类之间传递变量,而是希望 controller 类的不同成员方法能访问类自身的成员变量。
例如上面代码中,我通过 input()方法已经设置了 成员变量的内容,但用 output 方法却访问不到该变量。 terminus 发表于 2013-5-9 10:20 static/image/common/back.gif
你可以在core下建一个类作为你这些类的父类,例如MY_parentcls,那么这个MY_parentcls就继承CI_Controller,你 ...
谢谢楼上的回答。可能我表述不够清楚,我不是要在不同的类之间传递变量,而是希望 controller 类的不同成员方法能访问类自身的成员变量。
例如上面代码中,我通过 input()方法已经设置了 成员变量的内容,但用 output 方法却访问不到该变量。 楼主是想跨请求传递数据吧?
控制的不同方法,在跨请求后肯定是拿不到数据了,这是 PHP 运行方式的限制。
想拿到数据可以用 session 或者数据库等方式。 Hex 发表于 2013-5-9 10:43 static/image/common/back.gif
楼主是想跨请求传递数据吧?
控制的不同方法,在跨请求后肯定是拿不到数据了,这是 PHP 运行方式的限制。
...
是的。 Hex果然大神啊,我是想2次请求拿同一个数据。
是不是PHP的每次请求就相当于把 页面的类重新 ”实例化“一次?对吧 sharp_c 发表于 2013-5-9 20:01 static/image/common/back.gif
是的。 Hex果然大神啊,我是想2次请求拿同一个数据。
是不是PHP的每次请求就相当于把 页面的类重新 ”实 ...
是的,PHP的执行方式就是每次请求都初始化->运行->清理,所以请求完毕内存就清除了。
想请求之间共享数据,一般用数据库,或者Session等。 帮你顶一下吧
页:
[1]