博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkCMF变量输出+使用函数
阅读量:5982 次
发布时间:2019-06-20

本文共 1759 字,大约阅读时间需要 5 分钟。

ThinkCMF变量输出+使用函数的方式同ThinkPHP。

ThinkPHP变量输出:

在模板中输出变量的方法很简单,例如,在控制器中我们给模板变量赋值:

$name = 'ThinkPHP';

$this->assign('name',$name);

$this->display();

然后就可以在模板中使用:

Hello,{

$name}!

模板编译后的结果就是:

Hello,<?php echo($name);?>

这样,运行的时候就会在模板中显示: Hello,ThinkPHP!

注意模板标签的{

$之间不能有任何的空格,否则标签无效。所以,下面的标签

Hello,{ $name}!

将不会正常输出name变量,而是直接保持不变输出: Hello,{ $name}!

普通标签默认开始标记是{

,结束标记是 }。也可以通过设置TMPL_L_DELIMTMPL_R_DELIM进行更改。例如,我们在项目配置文件中定义:

'TMPL_L_DELIM'=>'<{',

'TMPL_R_DELIM'=>'}>',

那么,上面的变量输出标签就应该改成:

Hello,<{

$name}>!

后面的内容我们都以默认的标签定义来说明。

模板标签的变量输出根据变量类型有所区别,刚才我们输出的是字符串变量,如果是数组变量,

$data['name'] = 'ThinkPHP';

$data['email'] = 'thinkphp@qq.com';

$this->assign('data',$data);

那么,在模板中我们可以用下面的方式输出:

Name:{$data.name}

Email:{$data.email}

或者用下面的方式也是有效:

Name:{

$data['name']}

Email:{

$data['email']}

当我们要输出多维数组的时候,往往要采用后面一种方式。

如果data变量是一个对象(并且包含有name和email两个属性),那么可以用下面的方式输出:

Name:{$data:name}

Email:{$data:email}

或者

Name:{$data->name}

Email:{$data->email}

 

ThinkPHP使用函数-指的是在模版中使用变量的情况的同步的使用函数

我们往往需要对模板输出变量使用函数,可以使用:

{$data.name|md5} 

编译后的结果是:

<?php echo (md5($data['name'])); ?>

如果函数有多个参数需要调用,则使用:

{

$create_time|date="y-m-d",###}

表示date函数传入两个参数,每个参数用逗号分割,这里第一个参数是y-m-d,第二个参数是前面要输出的create_time变量,因为该变量是第二个参数,因此需要用###标识变量位置,编译后的结果是:

<?php echo (date("y-m-d",$create_time)); ?>

如果前面输出的变量在后面定义的函数的第一个参数,则可以直接使用:

{

$data.name|substr=0,3}

表示输出

<?php echo (substr($data['name'],0,3)); ?>

虽然也可以使用:

{

$data.name|substr=###,0,3}

但完全没用这个必要。

还可以支持多个函数过滤,多个函数之间用“|”分割即可,例如:

{

$name|md5|strtoupper|substr=0,3}

编译后的结果是:

<?php echo (substr(strtoupper(md5($name)),0,3)); ?>

函数会按照从左到右的顺序依次调用。

如果你觉得这样写起来比较麻烦,也可以直接这样写:

{:substr(strtoupper(md5($name)),0,3)}

变量输出使用的函数可以支持内置的PHP函数或者用户自定义函数,甚至是静态方法。

(转自:http://www.kancloud.cn/manual/thinkphp/1796)

转载于:https://www.cnblogs.com/jinguodong/p/5986051.html

你可能感兴趣的文章
win32控制台应用程序中使用CString类型的方法
查看>>
关于authlib集成windows ad失败的分析并解决[草稿]
查看>>
centos5.4 x86_64禁用的服务
查看>>
python中单元测试的常用语句
查看>>
阿里Java面试题剖析:为什么使用消息队列?消息队列有什么优点和缺点?
查看>>
3.2.4 Shell脚本--函数的用法
查看>>
ssh-keygen -t rsa -f cloud.key ssh -i cloud.key <username>@<instance_ip>
查看>>
培训机构管理系统帮助机构解决管理问题
查看>>
我的友情链接
查看>>
C# 创建邮件合并模板并合并文本、图片
查看>>
DISCUZ官方论坛模仿开发日志(二)
查看>>
Java设计模式系列之策略模式
查看>>
12个国外优秀.Net开源项目(转)
查看>>
Expression Blend 4 激活
查看>>
mysql 原理 ~ LRU 算法与buffer_pool
查看>>
个人经验~ 利用5.7的sys库更好的排查问题
查看>>
(转) ACM必备(学完一个就加亮一个)不多,就这些!
查看>>
数字图像处理中所用数学工具4---集合、逻辑操作与模糊集合
查看>>
java学习之租车系统
查看>>
【杭电ACM】1004 Let the Balloon Rise
查看>>