• ThinkCMF变量输出+使用函数


    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)

  • 相关阅读:
    JavaScript Patterns 5.7 Object Constants
    JavaScript Patterns 5.6 Static Members
    JavaScript Patterns 5.5 Sandbox Pattern
    JavaScript Patterns 5.4 Module Pattern
    JavaScript Patterns 5.3 Private Properties and Methods
    JavaScript Patterns 5.2 Declaring Dependencies
    JavaScript Patterns 5.1 Namespace Pattern
    JavaScript Patterns 4.10 Curry
    【Android】如何快速构建Android Demo
    【Android】如何实现ButterKnife
  • 原文地址:https://www.cnblogs.com/jinguodong/p/5986051.html
Copyright © 2020-2023  润新知