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内置引擎类:ThinkPHP\Lib\Template\ThinkTemplate.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‘);//单位:毫秒

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

时间: 2024-08-10 10:59:19

tp3.1 (2)的相关文章

[tp3.2.1]查询(2)

<?phpnamespace Home\Controller;use Think\Controller;use Think\Model;class QueryController extends Controller{    //快捷查询 - 是一种多字段查询的简化写法,    //多个字段之间用‘|’隔开表示OR    //用‘&’隔开表示AND        public function Query1(){        echo '<meta http-equiv="

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(一) 之 基层数据搭建,让数据活起来(数据获取)

大家好,本篇是接上一篇 ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(零) 前言  ASP.NET SignalR WebIM系列第二篇.本篇会带领大家将 LayIM界面中的数据动态化.当然还不涉及即时消息通讯,如果你已经搞定了数据界面,那么本文您可以简单的看一下,或者略过. 进入正题,layim帮我们定义好了数据规则,我们只要写一个接口实现那个json规范就可以了,剩下的事情就交给layim去做,看一下json格式.(对应文件夹:demo/json/getLi

java基础(3)-多线程(1)

java多线程 进程与线程 进程:指一个正在执行的应用程序.每个进程执行都有一个执行顺序,该顺序称为一个执行路径或一个控制单元(进程是资源分配的最小单位).一个进程包含1~n个线程 线程:指进程中某个单一顺序的控制流.线程控制着进程的执行(线程是CPU调度的最小单位) 多进程:指操作系统能同时运行多个任务(程序)多线程:指在同一程序中有多个顺序流在执行 实现java多线程 在java中要实现多线程,有两种方式,一种是继承Thread类,一种是实现Runable接口 方式一:继承Thread类并复

[转载]ExtJs4 笔记(4) Ext.XTemplate 模板

作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律责任. 本篇将涉及到ExtJs中一个重要的概念,模板.话说Razor很神奇,但是我个人不是很喜欢那种html混编C#的方式,仿佛又回到了asp的时 代.ExtJs的模板同样也可以组织生成灵活的html,而且代码和html有效的分离.本文将细细分析ExtJs模板的用法. 行文之前我先把公共的html和

ExtJs4 笔记(4) Ext.XTemplate 模板

ExtJs4 笔记(4) Ext.XTemplate 模板 摘自:http://www.cnblogs.com/lipan/ 本篇将涉及到ExtJs中一个重要的概念,模板.话说Razor很神奇,但是我个人不是很喜欢那种html混编C#的方式,仿佛又回到了asp的时 代.ExtJs的模板同样也可以组织生成灵活的html,而且代码和html有效的分离.本文将细细分析ExtJs模板的用法. 行文之前我先把公共的html和用到的js数据贴在前面,后面的代码都要引用到. [html] 1 2 3 4 5

小白的python进阶历程------07.元组(tuple)

元组(tuple) 有序(有索引,定义和显示顺序是一致的).不可变.可重复.可以存放任何类型的数据(不可变的) 1).tuple的格式 tp1 = ("name","age",23,"height","address","job") tp1 = (name,job) = ["chen","IT"] tp1 = () tp1 = ("python",

使用 IDEA 创建 Maven Web 项目 (异常)- Disconnected from the target VM, address: &#39;127.0.0.1:59770&#39;, transport: &#39;socket&#39;

运行环境: JDK 版本:1.8 Maven 版本:apache-maven-3.3.3 IDEA 版本:14 maven-jetty-plugin 配置: <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webAppSourceDirectory>${pro

在深圳有娃的家长必须要懂的社保少儿医保,不然亏大了!(收藏)

在深圳有娃的家长必须要懂的社保少儿医保,不然亏大了!(收藏) 转载2016-07-26 17:21:47 标签:深圳少儿医保社保医疗保险住院 在深圳工作或生活的家长们可能还有人不清楚,其实小孩子最大的基础保障福利就是少儿医保.如果以前没重视关注的,现在您看到这篇文章还来得及!少儿医保每年政府财政补贴384元,自己只需交200元左右,就可以享受门诊报销1000元,住院报销比例90%,最高报销额度达148万,大病门诊最高报销比例90%!如何享受?有哪些待遇?接下来就详细来做一个介绍: 少儿医保投保需

彻底解决_OBJC_CLASS_$_某文件名&quot;, referenced from:问题(转)

最近在使用静态库时,总是出现这个问题.下面总结一下我得解决方法: 1. .m文件没有导入   在Build Phases里的Compile Sources 中添加报错的文件 2. .framework文件没有导入静态库编译时往往需要一些库的支持,查看你是否有没有导入的库文件同样是在Build Phases里的Link Binary With Libraries中添加 3. 重复编译,可能你之前复制过两个地方,在这里添加过两次,删除时系统没有默认删除编译引用地址在Build Settings里搜索