欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

ThinkPHP模板变量输出调用方法有哪些?

程序员文章站 2022-05-09 14:34:14
...
  1. {$变量名称}例子:{$username} //普通变量{$userinfo["email"]} //数组方式{$userinfo["sub"]["name"]} //三维数组方式{$userinfo:email} //对象方式{$userinfo.email}...
复制代码

普通输出 输出模板中的变量,格式如下: {$变量名称}

例子:

  1. {$username} //普通变量
  2. {$userinfo["email"]} //数组方式
  3. {$userinfo["sub"]["name"]}//三维数组方式
  4. {$userinfo:email} //对象方式
  5. {$userinfo.email} //自动判断数组或对象方式
复制代码

默认输出 如果输出的模板变量没有值,但是我们需要在显示时赋予一个默认值的话,可以使用 default 语法来默认显示一个值。

格式: {$变量|default="默认值"} 例子:

  1. {$username|default="匿名"}
复制代码

使用函数 对模板变量使用函数 模板引擎支持对输出的变量做格式化处理,也就是使用函数,并且支持多个函数。

格式: {$变量|函数1|...|函数n=参数1,...,参数n,### } 函数从左往右对变量执行,先执行函数1,得到结果后作为参数再执行函数2,依次类推,并且默认情况下执行的结果是作为下一个函数第一个参数。

例子:

  1. {$webTitle|md5|strtoupper|substr=0,3}
复制代码

实际执行结果等效为: 如果变量或上函数执行的结果不是函数或下一个函数的第一个参数,那么需要使用定位符“###”: {$userinfo["regdate"]|date="Y-m-d H:i",###} 实际执行结果等效为:

  1. echo date("y-m-d H:i",$userinfo["regdate"]|);
  2. ?>
复制代码

提示 对变量使用函数没有数量限制,但默认禁用了 exit 和 echo 函数,以防止破坏模板输出。关于禁用的函数具体配置可参见《ThinkPHP 系统配置》。

模板直接使用函数 模板文件中还支持直接调用函数的快捷方法,无需通过模板变量,包括两种方式:

1、执行函数并输出返回值

格式: {:函数} 例子:

  1. {:say_hello('ThinkPHP')} //say_hello()为用户自定义函数
  2. 实际执行结果等效为:
  3. echo say_hello('ThinkPHP');
  4. ?>
复制代码

2、执行函数但不输出 格式: {~函数} 例子:

  1. {~say_hello('ThinkPHP')} //say_hello()为用户自定义函数
  2. 实际执行结果等效为:
  3. say_hello('ThinkPHP');
  4. ?>
复制代码

以上两种方法,也支持传入模板变量作为函数的参数。

系统变量输出 系统变量包括:server、session、post、get、request、cookie、env。系统变量的输出不需要事先赋值给某个模板变量。系统变量的输出以 $Think. 开头,并且仍然支持使用函数。

例子:

  1. {$Think.session.session_id|md5} //输出 $_SESSION 变量并使用 md5 加密
  2. //或简写为
  3. {$_SESSION. session_id|md5}
  4. //输出$_GET变量
  5. {$_GET.pageNumber}
复制代码

系统常量输出 使用$Think.const输出系统常量。

例子:

  1. {$Think.const.ACTION_NAME} //输出 ThinkPHP 系统定义的常量 ACTION_NAME(当前操作名称)
  2. //或简写为
  3. {$Think.ACTION_NAME}
复制代码

配置参数输出 使用 $Think.config 输出项目的配置参数值。

例子:

  1. {$Think.config.DB_PREFIX}
复制代码

输出的值和 C('DB_PREFIX') 的返回结果是一样的。

快捷输出 为了使得模板定义更加简洁,系统还支持一些常用的变量输出快捷标签,包括:

  1. {@var} 与 {$Think.session.var} 等效,输出 Session 变量
  2. {#var} 与 {$Think.cookie.var} 等效,输出 Cookie 变量
  3. {&var} 与 {$Think.config.var} 等效,输出配置参数
  4. {%var} 与 {$Think.lang.var} 等效,输出语言变量
  5. {.var} 与 {$Think.get.var} 等效,输出 GET 变量
  6. {^var} 与 {$Think.post.var} 等效,输出 POST 变量
  7. {*var} 与 {$Think.const.var} 等效,输出常量
复制代码

提示 快捷输出不支持函数的使用 为了模板的可读性较强,不建议使用快捷输出方式