空操作:
方法1:
MainController.class.php:
function _empty() { echo "网页不存在,请检查浏览器地址信息"; }
方法2:
给空操作的名称制作一个同名的模板出来,系统会自动调用
空控制器:
创建EmptyController.class.php,以及对象调用指定的方法:
<?php namespace Home\Controller; use Think\Controller; class EmptyController extends Controller { function _empty() { echo "访问的页面不存在"; } }
跨控制器调用:
IndexController.class.php:
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index() { } public function ShuChu() { return "教务"; } }
MainController.class.php:调用Index控制器的Shuchu方法
function ShuChu() { //造对象 /*$index = new IndexController(); echo $index->ShuChu();*/ //A方法 /*$index = A(Index); echo $index->ShuChu();*/ //R方法,造对象并调用方法 //echo R("Index/ShuChu"); //跨模块调用,需在控制器前加模块名称,例A("模块/控制器")或D("模块/控制器/方法") }
系统变量;
public function Text() { $attr = array("one"=>hello,"two"=>world); $this->assign("attr",$attr);//数组输出 $this->assign("text",123);//变量输出 $this->display(); }
Text.html:
<body> <h1>测试页面</h1> <div><{$text}></div> <div><{$attr[one]}></div> <div> <if condition="$text lt 5"> <div>错误</div> <else /> <div>正确</div> </if> </div> </body>
父子模板:
MainController.class.php:
public function zi() { $this->display(); }
fu.html:
<body> <block name="top"> <div>头</div> </block> <block name="content"> <div>中</div> </block> <block name="foot"> <div>尾</div> </block> </body>
zi.html:
<extend name="fu" /> <block name="content"> <div style="height:100px; width:100px; background-color:yellow"></div> </block>
系统变量输出
例:
<{$Think.cookie.name}> //输出$_COOKIE["name"]变量
支持输出$_SERVE,$_ENV,$_POST,$_GET,$_REQUEST,$_SESSION,$_COOKIE变量
常量输出
<{$Think.const.MOOULE_NAME}>或<{$Think.MOOULE_NAME}>(注意:常量使用除了双下划线开头以外,双下划线可直接使用)
配置输出
<{$Think.config.url_model}>
默认值输出
<{$ceshi|default="默认"}>
使用运算符(不再支持点语法和常规的函数用法)
+ - * / ++ -- %
模板继承:子模板类似是对父模板的重写,可简省代码
三元运算符:(不支持点语法)
<{$pd?"男":"女"}>
包含文件:(include标签)
<include file="控制器/操作" />
内置标签(==/eq;>/gt;<lt)
<if condition="$id eq 5">
<else />
</if>
foreach标签 (name 值为变量名,item值为循环出的每一项的值)
<foreach name="shuzuming" item="v">
<div><{$v}></div>
</foreach>
for标签
<for start="开始值" end="结束值" comparison="默认lt小于" step="步进值,默认1" name="循环变量名,默认i">
</for>
模板替换
1.__ROOT__:会替换成当前网站的地址(不含域名)
2.__APP__:会替换成当前应用的URL地址(不含域名)
3.__MOOULE__:会替换成当前页面的URL地址(不含域名)
4.__CONTROLLER__:会替换成当前控制器的URL地址(不含域名)
5.__ACTION__:会替换成当前操作的URL地址(不含域名)
6.__SELF__:会替换成当前页面的URL
7.__PUBLIC__:会替换成当前网站的公共目录,通常是/Public/
命名空间:
命名空间:
相当于一个虚拟的目录
正常管理文件使用文件夹--物理区分
TP框架的初始命名空间是:ThinkPHP\Library
在TP框架下命名空间里面使用\代表的是初始命名空间(ThinkPHP\Library)
1.系统目录下根命名空间是ThinkPHP\Library下面的文件夹名称命名的
2.模块的根命名空间是以模块名命名的
在定义命名空间的时候需要从根写起例如:Home\Controller 例如:Think\Model
如果要使用某个类文件,引入该类命名空间的时候:
使用use关键字,后面写该类的命名空间 后面加上 "\文件名"
如果不想引入命名空间:在造类的对象的时候可以使用\(初始命名空间)来找到对应的类
例如:new \Think\Page(30);