近幾天都在學(xué)習(xí)php 因此總結(jié)一下
首先使用的是thinkphp3.1.3的模板
在XAMPP的htdoc目錄下新創(chuàng)建一個(gè)tt目錄 隨后將thinkphp導(dǎo)入 隨后建立一個(gè)index.php
目錄結(jié)構(gòu)如下
這個(gè)index.php就是thinkphp的入口文件 可以有多個(gè)入口文件 比如前臺(tái)的入口文件 index.php和后臺(tái)的入口文件 admin.php等
在index.php中定義自己的項(xiàng)目路徑 取項(xiàng)目名稱 為app 引入think.php下的php文件
<?php
//定義項(xiàng)目名稱
define('APP_NAME', 'App');
//定義項(xiàng)目路徑 記得加斜杠
define('APP_PATH','./App/');
//引入thinkphp文件
require('./ThinkPHP/ThinkPHP.php');
?>
此時(shí)這個(gè)app項(xiàng)目便已經(jīng)創(chuàng)建完成了 在瀏覽器中輸入localhost/tt/index.php
就可以看到php的歡迎界面
此時(shí)可以看項(xiàng)目的目錄結(jié)構(gòu)
THINKPHP是系統(tǒng)自帶的 而app是自己的項(xiàng)目生成的文件
首先是配置文件 有系統(tǒng)自帶的配置文件 最好不要去改動(dòng) 在thinkPHP/Conf目錄下
而項(xiàng)目的配置文件在APP/Config下
<?php
return array(
//'配置項(xiàng)'=>'配置值'
"URL_MODEL" => 0,
);
?>
有四種URL模式
可以通過URL_MODEL來進(jìn)行配置 可以通過”
C("URL_MODEL");
來進(jìn)行輸出
可以通過U函數(shù)進(jìn)行輸出
//模塊名/方法名 參數(shù) 后綴 是否跳轉(zhuǎn) 域名來進(jìn)行輸出
echo U("Index/user",array("id" => 1),'shtml',false,localhost);
//user方法
public function user() {
echo "id is".$_GET["id"];
echo "這是index的user方法";
}
這樣即可輸出
http://localhost/tp/admin.php/Index/user/id/1.html
主要有以下幾種URL模式
//默認(rèn)模式 pathInfo 模式1
//0 普通模式
//2重寫模式ec
//3兼容模式
模塊的輸出
模塊相當(dāng)于MVC中的V 就可以想到是html的文件
在thinkphp3.1.3的文件中 實(shí)在項(xiàng)目的TPL文件夾下 因此建立一個(gè)index目錄
隨后創(chuàng)建一個(gè)index.html 實(shí)際上控制器即為L(zhǎng)ib下的action下的IndexAction.class.php目錄
隨后在contrller中進(jìn)行渲染 這一步通常是在最后執(zhí)行的
首先進(jìn)行賦值
$name = "caokaiqiang";
$this -> name = $name;
//渲染
$this -> display();
在index.html中進(jìn)行模塊的輸出
{$name};
這樣即可
也可以通過assign的方式進(jìn)行連續(xù)的賦值
$this->assign(name,$name)->assign(age,$age);
隨后進(jìn)行輸出即可
{$name}
{$age}
也可以通過數(shù)組的方式進(jìn)行賦值 數(shù)組的輸出有兩種 一種是通過[]訪問 一種是通過.來進(jìn)行訪問
$me["age"] = 18;
$me["name"] = "kevin";
$this -> assign(me,$me);
隨后進(jìn)行輸出
{$me.age}
{$me["name"]}
調(diào)用函數(shù) 可以直接在模塊輸出的時(shí)候進(jìn)行調(diào)用
{$me["name"] | md5 | substr = 0,5}
這里調(diào)用了 md5加密和字符串的截取
數(shù)組的輸出 可以有兩種方式 一種使用volist方法 還有是foreach的方法
首先定義數(shù)組
$person = array(
1 => array("name" => "jack","age" => "18"),
2 => array("name" => "tom","age" => "19"),
3 => array("name" => "sam","age" => "20"),
4 => array("name" => "hhh","age" => "21"),
);
以下中的name 都是在action中賦值的 譬如以下的id 就是賦好值傳過來的
隨后進(jìn)行輸出
volist方法更靈活 可以定義偏移量跨扮,和如果值沒有的話 可以設(shè)置默認(rèn)值等
而foreach的方法只能進(jìn)行輸出
<volist name = "person" id = "data" offset = "1" length = "3">
{$data["name"]}---{$data["age"]}<br>
</volist>
<foreach name = "person" item = "data">
{$data["name"]} {$data["age"]}<br>
</foreach>
if語(yǔ)句的使用 主要是conditon的書寫
要記住else if和else后面必須加結(jié) 束符號(hào) /否則會(huì)連續(xù)執(zhí)行
<if condition = "$num gt 10">num 大于10
<elseif condition = "$num lt 10"/>num 小于10
<else />num等于10
</if>
eq 等于 neq 不等于 gt 大于 egt 大于等于 lt 小魚 ltq 小于等于 heq 恒等于 nheq 恒不等于
for 判斷 start和end指明 隨后指明comparison 默認(rèn)是小于
<!-- for循環(huán)輸出 默認(rèn)是小于-->
<for start = "1" end = "10" comparison = "elt" name = "k">
{$k}
switch操作
<switch name = "name">
<case value = "laoshi">jjj</case>
<case value = "xiaohong/hhh">hhh</case>
<default>cccccc</default>
</switch>
比較標(biāo)簽 可以直接指定比較標(biāo)簽名 或者使用compare的方法
<!-- 比較標(biāo)簽 name = "變量名" value = "比較的值" -->
<eq name = "id" value = "12">num=12<else/>num!=12</eq>
<compare name = "id" value = "12" type = "eq">num = 12<else/>num!=12</compare>
in和notin 在這個(gè)區(qū)間和不在這個(gè)區(qū)間
<!-- 區(qū)間范圍的方法 可以用in 和 not in 這兩種方法 -->
<in value = "1,10" name = "id">有12這個(gè)數(shù)<else/>沒有12這個(gè)數(shù)</in>
區(qū)間的方法可以用between
<!-- 區(qū)間的方法 -->
<between value = "1,10" name = "id">有12這個(gè)數(shù) <else/>沒有12這個(gè)數(shù)</between>
要記住range這個(gè)方法只能代替range和不能代替between
<!-- 區(qū)間的方法 -->
<range value = "1,12" name ="id" type = "in">有12這個(gè)數(shù)<else/>沒有12這個(gè)數(shù)</range>
三元運(yùn)算符和平常的都一樣
{$id >=12 ?"大于等于12" :"小于12"}
官方推薦的在html文件中插入php文件的方法
<php></php>而不建議使用<?php ?>