函数间的变量传递问题
好, CI 新手, 有问题请教, 谢。有这里一个控制器,
class abc extends CI_Controller {
function xxxx()
{ $abc = 'asdasdf'; }
function yyyy()
{ $ccc = $abc + 3333;}
}
}
以上是一个demo, 简单的意思就是在xxxx函数中有一个变量 $abc, 现在在yyyy这个函数中需要他的值, 这个如何处理?
除了存到Session里面的方法外,还有其他的方法吗?
用了 $this-> abc; 并且把abc也初始化了,貌似也不行。
谢谢
你要是这样的话,你得在构造函数中初始化 class abc extends CI_Controller {
private $abc;
function abc()
{ parent::__contruct();
$this->abc=123;
}
function yyyy()
{ $ccc = $this->abc + 3333;}
} 本帖最后由 spt119 于 2011-6-13 16:54 编辑
直接在函数中调用function yyyy()即可。
但前提是需要在yyyy()中设置一个适合的return。
类似这样。
class abc extends CI_Controller {
function xxxx()
{ $abc = 'asdasdf'; $你的变量 = $abc + $this->yyyy();}
function yyyy()
{ $ccc = $abc + 3333;return $ccc;}
}
}
spt119 发表于 2011-6-13 16:52 static/image/common/back.gif
直接在函数中调用function yyyy()即可。
但前提是需要在yyyy()中设置一个适合的return。
类似这样。
晓得了, 一会试。
谢谢 zhouli520 发表于 2011-6-13 13:11 static/image/common/back.gif
class abc extends CI_Controller {
private $abc;
function abc()
抱歉,可能没有说清楚。
这个变量不能初始, 因为是form提交过来的一些数据。 oliverzhy 发表于 2011-6-13 22:10 static/image/common/back.gif
抱歉,可能没有说清楚。
这个变量不能初始, 因为是form提交过来的一些数据。 ...
做一个类的中间变量,比如 $this->a1, $this->a2 等等,存储你的 form 数据,然后就可以类里共享了。
如果要跨类,就只能是全局变量了。 Hex 发表于 2011-6-14 00:46 static/image/common/back.gif
做一个类的中间变量,比如 $this->a1, $this->a2 等等,存储你的 form 数据,然后就可以类里共享了。
如 ...
Hi,
中间变量 我做了一个,
class abc extends CI_Controller
{
var $abcd = array();
function aaaa()
{
$this->abcd = array('a', '2','b');
}
function bbbb()
{
var_dump($this->abcd);
}
}
访问http://localhost/abc/aaaa 之后,再次访问http://localhost/abc/bbbb
但是输出是 array(0)
奇怪, 中间变量是这样的定义的吗? 还是我的思路错了? oliverzhy 发表于 2011-6-14 01:44 static/image/common/back.gif
Hi,
中间变量 我做了一个,
function bbbb()
{
$this->aaaa();
var_dump($this->abcd);
}
直接访问bbbb就有了 oliverzhy 发表于 2011-6-14 01:44 static/image/common/back.gif
Hi,
中间变量 我做了一个,
不同的请求之间无法共享内存,也无法共享变量。
跨请求共享最常见的就是 Session,数据库等等。
PS: 建议你先了解一下 PHP 的运行机制,对于你理解这个问题有很大帮助,呵呵
页:
[1]
2