发新话题
打印

Thinkphp模板变量的高级使用

Thinkphp模板变量的高级使用

内置模板引擎对模板变量的支持相当充分,除了可以输出正常变量外,还可以输出特殊变量和对输出变量使用函数定义(并支持多个函数)。
模板变量的标签格式为
格式:{$varname|function1|function2=arg1,arg2,### }
说明:
{ 和 $ 符号之间不能有空格 ,后面参数的空格就没有问题
###表示模板变量本身的参数位置
支持多个函数函数之间支持空格
支持函数屏蔽功能,在配置文件中可以配置禁止使用的函数列表
支持变量缓存功能,重复变量字串不多次解析

使用例子:
代码: 复制内容到剪贴板
  1. {$webTitle|md5strtoupper |  substr=0,3  }
  2. {$number|number_format=2  }
如果在应用Action中需要输出某个变量,使用下面的方法:
代码: 复制内容到剪贴板
  1. $this->assign('name','value');
系统只会输出设定的变量,其它变量不会输出,一定程度上保证了变量的安全性。

系统支持输出数组和对象属性,无论要输出的模板变量是数组还是对象,都可以用下列方式输出:
代码: 复制内容到剪贴板
  1. {$user.name}
系统会自动判断要输出的变量,如果是多维数组或者多层对象属性的输出,请使用下面的定义方式:
代码: 复制内容到剪贴板
  1. {$user['sub']['name']}
  2. {$user:sub:name}
如果要同时输出多个模板变量,可以使用下面的方式:
代码: 复制内容到剪贴板
  1. $array = array();
  2. $array['name']    =    'thinkphp';
  3. $array['email']    =    'liu21st@gmail.com';
  4. $array['phone']    =    '12335678';
  5. $this->assign($array);
这样,就可以在模板文件中同时输出name、email和phone三个变量。

除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要对模板变量赋值。

系统变量(依然支持函数使用和大小写、空格),以Think.打头,如
代码: 复制内容到剪贴板
  1. {$Think.server.script_name //取得$_SERVER变量
  2. {$Think.session.session_id|md5 // 获取$_SESSION变量
  3. {$Think.get.pageNumber //获取$_GET变量
  4. {$Think.cookie.name }  //获取$_COOKIE变量
系统常量
代码: 复制内容到剪贴板
  1. {$Think.const.__FILE__ 
  2. {$Think.const.MODULE_NAME }
特殊变量 ,由ThinkPHP系统定义的常量
代码: 复制内容到剪贴板
  1. {$Think.version }  //版本 
  2. {$Think.now //现在时间 
  3. {$Think.template|basename //模板页面 
  4. {$Think.LDELIM //模板标签起始符号 
  5. {$Think.RDELIM //模板标签结束符号
配置参数
代码: 复制内容到剪贴板
  1. {$Think.config.db_charset}
语言变量
代码: 复制内容到剪贴板
  1. {$Think.lang.page_error}
还有一些常用的变量输出快捷标签,包括下面:
代码: 复制内容到剪贴板
  1. {:function()} //执行方法并输出返回值
  2. {~function} //执行方法不输出
  3. {@var} //输出Session变量
  4. {&var} //输出配置参数
  5. {%var} //输出语言变量
  6. {.var} //输出GET变量
  7. {^var} //输出POST变量
  8. {*var} //输出常量

TOP

发新话题