如何给smaryt模板添加一个全局变量?

#1 peter

我想在所有的smarty模板输出一个全局变量。
不想每次都用$this->account=$_SESSION['account']来设置模板变量。
是否可以给smarty模板添加全局变量,方便任何时候调用。

2010-07-15 22:34:46

#2 jake

smarty可以通过$smarty变量来获取:全局变量、GET/POST数据、SESSION/COOKIE数据等

比如说你在index.php(入口文件)里面定义了
define('MYDATA','我是全局定义');

在任何一个模板内可以使用<{$smarty.const.MYDATA}>来显示该变量。

还有POST/GET是:<{$smarty.get.名称}>和<{$smarty.post.名称}>
SESSION/COOKIE也是:<{$smarty.session.名称}>和<{$smarty.cookie.名称}>

像你上面的$_SESSION['account']可以直接在模板里面<{$smarty.session.account}>而不用赋值

$smarty这个模板变量还有其他用途,你可以直接看看smarty文档:
http://www.smarty.net/manual/en/language.variables.smarty.php


PS:提问求助类帖子请发到求助问答区,此贴转移,谢谢:handshake

2010-07-15 22:51:04

#3 52833

我在index.php中
引入了一个数组
$class=array ();

但是在动作中无法访问

2010-07-19 06:07:39

#4 jake

我在index.php中
引入了一个数组
$class=array ();

但是在动作中无法访问
52833 发表于 2010-7-19 06:07
在action中应该先GLOBAL $class;
然后才可以用$class


这叫“变量作用域”或者叫变量的使用范围。

2010-07-19 09:50:25