zoukankan      html  css  js  c++  java
  • tp3.1 (2)

    一、自定义函数

    1、U()   url

    2、C()   conf的配置数据

    3、自定义函数

    在用户的应用程序中有,common-》创建common.php,然后写自己的方法,并在controller中使用就好了,

    4、dump()打印数组要比var_dump()更和谐

    二、建立项目模板

    在tpl中建立模板

    建立index(表示方法)文件夹,在index中建立index.html文件

    则 在 index控制器中可以 直接连接模板($this->display)

    此时display的是index控制器的index方法

    要使的其可以显示index控制器的test方法

    $this->display('Index/test')

    或者$this->display('test')

    三、模板的赋值和输出

    第一点:

    在controller->index()中

    $name="DOSON";

    在tpl->index->index.html

    那么如何接受$name的值:<?php  echo $name?>

    第二点:

    在controller->index()中

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

    在tpl->index->index.html

    那么如何接受$name的值:<?php  echo $name?>

    当使用第二种方式的时候:可以无限赋值,而使用第一种方法只能对一个数进行赋值$this->assign('name','张三')->assign('age',12);

    四、tp的模板引擎

    thinkphp内置引擎类:ThinkPHPLibTemplateThinkTemplate.class.php

    五、模板引擎之变量输出和运算

    在controller->index()中

    $me['name']='yyyyy';

    $me['age']=12;

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

    在tpl->index->index.html中:

    方法一:{$me['name']}

    方法二:

    {$me.name}

    注释的方法:{//$me.name}

    一个未定义的值可以设置默认值

    {$me.sex|default='man'}

    在模板进行运算

    进行运算时必须要写成数组的形式{$me['age']+1}

    六:thinkphp模板引擎之调用函数和系统参数

    方法一:在controller-》index

    echo $name=substr(md5($me['name']),0,5);

    方法二:在tpl-》index-》index

    {$me['name']|md5|substr=0,5}

    时间的调用

    在controller-》index

    $now=time();

    在tpl-》index-》index

    {$now|date='Y-m-d H:i:s',###}其中###表示的是变量,即为$now

    {$Think.now}

    系统函数{$Think.now}
    {$Think.version}
    {$Think.server.http_host}

    七、thinkphp模板引擎之volist和foreach 循环

    在contoller中:

    $person=array(
            1=>array('name'=>'jack6','age'=>'12'),    
            2=>array('name'=>'jack5','age'=>'15'),
            3=>array('name'=>'jack4','age'=>'12'),
            4=>array('name'=>'jack1','age'=>'11'),
            5=>array('name'=>'jack2','age'=>'15'),
        );
        $this->assign('person',$person);
            $this->display();

    在tpl中:

    <volist name="person" id="data">
    {$data['name']}-----{$data['age']}<br/>
    </volist>
    从第二个开始,循环3个
    <volist name="person" id="data" offset='1' length='3'>
    {$data['name']}-----{$data['age']}<br/>
    </volist>

    设置默认值

    <volist name="person" id="data" offset='1' length='3' empty='我没数据'>
    {$data['name']}-----{$data['age']}<br/>
    </volist>

    foreach

    <foreach name='person' item='data'>
    {$data['name']} ------{$data['age']}<br/>
    </foreach>

    八、thinkphp的for循环

    eq=        neq!=       gt>          egt>=      lt<

    elt<=      heq ===    nheq!==

    controller

    : for($i=0;$i<10;$i++){
            echo $i;
        }

    模板

    <for start='1' end='10' comparision='elt' name='k'>
        {$k}<br/>
    </for>

    九、tp模板引擎之if判断

    在controller中:

    $num=10;$this->assign('num',$num);

    在tpl中:

    <if condition="$num gt 10">num 大于10

    <elseif condition="$num lt 10 "/>num小于10

    <else condition="$num eq 10"/>num等于10

    </if>

    输出结果为:num=10

    十、tp模板引擎之switch判断

    在controller中:

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

    在tpl中:

    <switch name="name">

    <case value="xiaohong|">小明,滚出去</case>

    <case value="laoshi"> 小明滚</case><defalut/>小明,自己滚蛋了

    </switch>

    十一、tp模板引擎之比较标签

    <比较标签 name="变量" value="比较的值">

    </比较标签>

    方法一、

    <eq name="num" value="10">num=10</eq>

    <neq name="num" value="10"> num!=10</neq>

    方法二、

    <eq name="num" value="10">num=10 <else/>num!=10</eq>

    方法三、

    <compare name="num" value="10"type="eq">num=10<else/>num!=10</compare>

    十二、tp模板引擎之区间标签

    in/notin

    方法一、

    <in name="num" value="1,2,4,7">在区间</in>
    <notin name="num" value="1,2,4,7">不在区间</notin>

    方法二、
    <in name="num" value="2,4,7">在区间<else/>不在这个区间</in>

    方法三、

    <range name='num' value='12,2,4' type='in'>有2这个数<else/>没有</range>
    between/notbetween:判断区间范围i

    方法一、

    <between name='num' value='1,19'>确实在这里</between><br/>
    <notbetween name='num' value='13,9'>bu确实在这里</notbetween>
    <br/>

    方法二、
    <between name='num' value='1,19'>确实在这里<else/>不再</between><br/>

    十三、三元运算符

    {$num>17?'大于17':‘不大于17’}

    十四、模板实战

    class IndexAction extends Action {
        public function index(){
      $person=array(
            1=>array('name'=>'jack1','age'=>'16'),    
            2=>array('name'=>'jack2','age'=>'17'),
            3=>array('name'=>'jack3','age'=>'18'),
            4=>array('name'=>'jack4','age'=>'19'),
        );
        $this->assign('person',$person);
            $this->display();
        }

    <foreach name='person' item='data'>
        <egt name='data.age' value='18'>{$data.name}已经成年了
        <else/>{$data.name}还是个孩子</egt>
    </foreach>

    在模板中引入php:<php>echo $person[1]['name']</php>

    十五、thinkphp的调试方法

    方法一、

    在app-》conf-》debug.php,在debug.php文件中可以改变config.php的值以调试

    方法二、

    专门给开发人员的调试

    开启页面的trace信息

    在debug.php文件中:‘SHOW_PAGE_TRACE'=>true,

    方法三、

    trace('name',C('name'));

    方法四、

    dump($_SERVER);

    方法五、

    G(‘run’);

    for($i=0;$i<1000;$i++){$count+=$i;}

    echo G('run','end');//单位:毫秒

    做程序,复杂的逻辑:查看死循环、漫循环

  • 相关阅读:
    word批量打印工具,c#写的
    word添加页眉脚和设置各页不同的页眉页脚.
    打印机双面打印
    ORACLE OCP认证
    基于.net程序,使用cefsharp开发的打开网页工具,如何不加载图片
    在iis上运行的服务器端程序,运行一段时间后,访问都只出现一行乱码,回收进程池后又好了,求大神回复
    ArcGis API for JavaScript 开发笔记一 加载地图
    修改现有消息类让.net core项目支持Protobuf
    结合现有分布式系统的数据一致性思考
    让现有vue前端项目快速支持多语言
  • 原文地址:https://www.cnblogs.com/yanran/p/5120052.html
Copyright © 2011-2022 走看看