$this->变量无法从数组中取值

#1 cygsd

在spController扩展类中,遇到一个奇怪的问题,如下:
 
function index()
{
var $arr=new array('name'=>'abcd');
$this->uname = $arr['name'];
var_dump($this->uname);
$uname = $arr['name'];
var_dump($uname);
}

结果:
 
$this->uname=NULL
$uname='abcd'

出现这个结果是怎么回事呀?

2010-02-26 17:49:46

#2 jake

在controller内,$this->是对模板赋值,而并非是真实的变量。

解释一下,从理论上来说,SP框架的controller更倾向于是一个语言结构,类似switch case 这种,是为了更好地组织应用程序而存在的语法,所以不能用普通类的方式来去看待controller。

2010-02-27 08:31:14

#3 cygsd

谢谢!
如果是想取$_SESSION内保存的已登录的用户名,用$this->赋值给模板,以便在模板中显示当前用户名称,不知道有没有方便的方法?

2010-02-28 10:42:53

#4 jake

在控制器中建立一个构造函数,然后在构造函数内进行赋值。

2010-02-28 14:53:18

#5 redguan

在控制器中建立一个构造函数,然后在构造函数内进行赋值。
jake 发表于 2010-2-28 14:53
发个例子。

2010-03-01 16:28:54