在 Thinkphp 模板引擎可以不需要赋值给某个模板变量而直接输出一些系统变量和系统常量、以及系统特殊变量。对于系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。下面就分别做一下分享。
(1)系统变量:在模板中输出系统变量:包括server、env、session、post、get、request、cookie
{$Think.server.script_name} // 输出$_SERVER变量
{$Think.session.session_id|md5} // 输出$_SESSION变量
{$Think.get.pageNumber} // 输出$_GET变量
{$Think.cookie.name} // 输出$_COOKIE变量
以上方式还可以写成:
{$_SERVER.script_name} // 输出$_SERVER变量
{$_SESSION.session_id|md5} // 输出$_SESSION变量
{$_GET.pageNumber} // 输出$_GET变量
{$_COOKIE.name} // 输出$_COOKIE变量
系统常量 :使用$Think.const 输出
注意:server、cookie、config不区分大小写,但是变量区分大小写。例如:
{$Think.server.script_name}和{$Think.SERVER.script_name}等效
SESSION 、COOKIE还支持二维数组的输出
例如:
{$Think.CONFIG.user.user_name}
{$Think.session.user.user_name}
系统不支持三维以上的数组输出。
(2)语言变量:输出项目的当前语言定义值
{$Think.lang.page_error}
{$Think.const.MODULE_NAME}
或者直接使用
{$Think.MODULE_NAME}
(3)特殊变量 :由ThinkPHP系统内部定义的常量
{$Think.version} //版本
{$Think.now} //现在时间
{$Think.template|basename} //模板页面
{$Think.LDELIM} //模板标签起始符号
{$Think.RDELIM} //模板标签结束符号
(4)配置参数 :输出项目的配置参数值
{$Think.config.db_charset}
输出的值和 C('db_charset') 的结果是一样的。
(5)thinkphp 的系统常量(注意以下常量也可以直接在 action 控制器中直接使用)
__ROOT__ // 网站根目录地址
__APP__ // 当前项目(入口文件)地址
__URL__ // 当前模块地址
__ACTION__ // 当前操作地址
__SELF__ // 当前 URL 地址
__PUBLIC__ // 网站公共目录