8.2 系统变量

除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think.打头,并且仍然可以支持使用函数。常用的系统变量输出包括下面:
用法 含义 例子
$Think.server 获取$_SERVER {$Think.server.php_self}
$Think.get 获取$_GET {$Think.get.id}
$Think.post 获取$_POST {$Think.post.name}
$Think.request 获取$_REQUEST {$Think.request.user_id}
$Think.cookie 获取$_COOKIE {$Think.cookie.username}
$Think.session 获取$_SESSION {$Think.session.user_id}
$Think.config 获取系统配置参数 {$Think.config.app_status}
$Think.lang 获取系统语言变量 {$Think.lang.user_type}
$Think.const 获取系统常量 {$Think.const.app_name}或{$Think.APP_NAME}
$Think.env 获取环境变量 {$Think.env.HOSTNAME}
$Think.version 获取框架版本号 {$Think.version}
$Think.now 获取当前时间 {$Think.now}
$Think.template 获取当前模板 {$Think.template}
$Think.ldelim 获取模板左界定符 {$Think.ldelim}
$Think.rdelim 获取模板右界定符 {$Think.rdelim}
1、系统变量:包括server、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、$_ENV、 $_POST、 $_GET、 $_REQUEST、$_SESSION和 $_COOKIE变量。后面的server、cookie、config不区分大小写,但是变量区分大小写。例如:
{$Think.server.script_name }和{$Think.SERVER.script_name }等效
SESSION 、COOKIE还支持二维数组的输出,例如:{$Think.CONFIG.user.user_name}
{$Think.session.user.user_name}
系统不支持三维以上的数组输出,请使用下面的方式输出。

以上方式还可以写成:{$_SERVER.script_name} // 输出$_SERVER变量
{$_SESSION.session_id|md5} // 输出$_SESSION变量
{$_GET.pageNumber} // 输出$_GET变量
{$_COOKIE.name}  // 输出$_COOKIE变量
如果配置了session和cookie前缀的话,会自动支持,例如:
设置参数如下:'SESSION_PREFIX'=>'think',
'COOKIE_PREFIX'=>'think_',
那么
{$Think.session.name}会自动解析成 $_SESSION['think']['name']
{$Think.cookie.name}会自动解析成 $_COOKIE['think_name']
2、系统常量:使用$Think.const 输出{$Think.const./manual/system_var.html} 
{$Think.const.MODULE_NAME}
或者直接使用{$Think./manual/system_var.html} 
{$Think.MODULE_NAME}
3、特殊变量:由ThinkPHP系统内部定义的常量 {$Think.version}  //版本 
{$Think.now} //现在时间 
{$Think.template|basename} //模板页面 
{$Think.LDELIM} //模板标签起始符号 
{$Think.RDELIM} //模板标签结束符号
4、配置参数:输出项目的配置参数值{$Think.config.db_charset}输出的值和C('db_charset') 的返回结果是一样的。
也可以输出二维的配置参数,例如:{$Think.config.user.user_name}
5、语言变量:输出项目的当前语言定义值{$Think.lang.page_error}输出的值和L('page_error')的返回结果是一样的。