zoukankan      html  css  js  c++  java
  • TP手册学习第四内置天

    1. 比较标签:
      1. eq:等于    heq:恒等于    gt:大于    lt:小于   (前面加上n则为否,如neq表示不等于)
        使用方法:{gt name="name" value="5"}value{/gt} ->当name的值大于5时就输出
        还可以支持对变量使用函数 当vo对象的属性值的字符串长度等于5就输出:
        {eq name="vo.name|strlen" value="5"}{$vo.name}{/eq}
        举例:先在控制器中分配数据


        然后在模板中使用标签
    2. 定义标签:

      1. ASSIGN标签用于在模板文件中定义变量

        {assign name='gender' value="female"}
        {$gender}     //注意输出变量的方法,怎么老记不住
        

        name属性支持系统变量,下例表示在模板中给$_GET['id'] 赋值了 123

        {assign name="Think.get.id" value="123" /}
        
      2.  define标签用于在模板中定义常量

        {define name='GENDER' value="female"}
        {$Think.const.GENDER}     //这是输出常量的方式
        或者:
        {define name='NAME' value="yolo_bean"}
        {:NAME}    //如果模板中有{:NAME}解析出来就是:<?php echo NAME;?>   
        
    3.  条件判断

      1. switch标签

        {switch name="data.age"}
        	{case value="22"}你今年22岁{/case}
        	{case value="23"}你今年23岁{/case}
        	{default}我不知道你几岁呀
        {/switch}

        简洁的用法
        {switch $User.userId}
        {case $adminId}admin{/case}
        {case $memberId}member{/case}
        {/switch}

        Case标签还有一个break属性,表示是否需要break,默认是会自动添加break,如果不要break,可以使用:
        {case value="1" break="0"}admin{/case}

        对于case的value属性可以支持多个条件的判断,使用”|”进行分割,下例表示type等于jpg或gif则返回正确
        {switch name="type"}
         {case value="jpg|gif"}正确的图片格式{/case}
         {default}非法图片格式
        {/switch}

          *abs()返回绝对值

      2.  if标签

        {if condition="$data.type eq 'gif'"} 这是gif图片
        	{elseif condition="$data.type eq 'jpg'"} 这是jpg图片
        	{else} 我不知道这是什么格式的文件
        	{/if}
        
        另外我们可以在condition属性里面使用php代码
        
        {if condition="strtoupper($user['name']) neq 'THINKPHP'"}ThinkPHP
        {else /} other Framework
        {/if}
        

          *点语法:$user.name  会自动判断是对象还是数组 ,如果知道是对象,则应该使用对象语法(冒号):$user:name

      3. 范围判断:范围判断标签包括in notin between notbetween四个标签,都用于判断变量是否中某个范围。

        {between name="id" value="1,10"}
        输出内容1
        {else/}
        输出内容2
        {/between}
        
      4. empty判断是否为空(notempty)

        {empty name="name"}
        name为空
        {else /}
        name不为空
        {/empty}
        
      5. defined标签用于判断某个常量是否有定义(notdefined)

        {defined name="NAME"}
        NAME常量已经定义
        {else /}
        NAME常量未定义
        {/defined}
        
    4. volist循环输出标签

      {volist name="list" id="vo"}
      {$vo.id}:{$vo.name}<br/>
      {/volist}
      

      foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,最简单的用法是:

      {foreach $list as $vo} 
          {$vo.id}:{$vo.name}
      {/foreach}
      

      for标签

      {for start="1" end="100"}
      {$i}
      {/for}
      
      解析后的代码是
      for ($i=1;$i<100;$i+=1){
          echo $i;
      } 
      

        

    5.   







  • 相关阅读:
    openstack 之Queen版本安装完成创建实例状态报错为ERROR
    重启nova-scheduler服务,报错Login was refused using authentication mechanism AMQPLAIN
    Failed to contact the endpoint at http://controller:35357/ for discovery. Fallback to using that endpoint as the base url.
    在centos系统的/etc/hosts添加了 当前主机的 ‘ NAT分配的IP controller’,RabbitMQ添加用户报错。
    一对简单的IPV6 SOCKET代码
    字节转换函数
    libevent笔记6:ssl bufferevent
    libevent笔记5:水位watermarks
    libevent笔记4:Filter_bufferevent过滤器
    libevent笔记3:evbuffer
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7838353.html
Copyright © 2011-2022 走看看