一、自定义函数
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');//单位:毫秒
做程序,复杂的逻辑:查看死循环、漫循环