1. 程式人生 > >tp 單字母函式詳解

tp 單字母函式詳解

A函式(基本是Action的簡寫)

  A函式是用來例項化我們的Action類的,例如我們的程式有2個Action分別是IndexAction和TestAction,在 IndexAction中有個myHello方法能夠輸出hello world,如果我也想在TestAction中也輸出同樣一段文字怎麼辦?最原始的方法首先我們匯入IndexAction.class.php這個文 件,然後new IndexAction,最後呼叫myHello方法才行。

程式碼一般為 :

PHP程式碼
  1. <?php  
  2. import("@.Action.Index");  
  3. //匯入本專案目錄下Action目錄下的Index.class.php檔案。
      
  4. class TestAction extends Action{  
  5.     public function index()  
  6.     {  
  7.         $index=new IndexAction();//例項化IndexAction  
  8.         echo $index->myHello();//呼叫myHello()方法  
  9.     }  
  10. }  
  11. ?>  

那麼,如果我們用A函式,怎麼寫呢?

PHP程式碼
  1. <?php  
  2. class TestAction extends Action{  
  3.     public function index()  
  4.     {  
  5.         $index
    =A("Index");  
  6.         echo $index->myHello();  
  7.     }  
  8. }  
  9. ?>  

  呵呵,少寫很多程式碼吧。當然,這還不是最偷懶的方法,請看下邊的R()函式,就知道什麼是偷懶的極致了。

B函式

  這是隨著行為應運而生的新生函式,可以執行某個行為,例如B('app_begin');就是在專案開始之前,執行這個行為定義的所有函 數,支援2個引數,第二個引數支援需要接受一個數組,例如B('app_begin',array("name"=>"tdweb","time"=>time()));這樣。

C函式

  獲取配置值,這個大家用的應該不少。雖然使用方便,但是C函式無疑是一個非常強大的函式。

獲取值:  
獲取所有設定:C(); 不傳遞任何引數,返回一個包含所有設定的陣列。
獲取指定配置:C('URL_MODEL') 這樣就能得到URL_MODEL的配置資訊
獲取指定二維陣列配置:C("array.name"),這樣就返回陣列array下的key為name所對應的值

設定值:
為二維陣列賦值C("array.name","value"),原理同上(獲取array.name的值),後邊的value是值

批量賦值: 
$test=array("URL_MODEL"=>1,"THIN_MODEL"=>true");
C($test);
這樣直接將數組裡的值賦值了

判斷是否賦值:
C("?URL_MODEL")這樣前邊加個"?",如果已經賦值,則返回true

  需要說明的是,這裡雖然更改了配置的值,但是僅僅是這個頁面做了更改,到下個頁面就不起作用了,如果想改就永久更改,那麼需要配合F函式,將配置檔案寫入config.php才行。

D函式

  DAO函式應該是我們寫程式用的最多的函數了。和A函式類似,如果不使用D函式,就需要匯入Model,然後new Model,剩下都是一樣的。

  但是D函式有2個有點,一是如果之前例項化過這個Model,那麼就不再例項化了,剩資源;二是方便除錯,如果不存在 這個Model,會丟擲TP異常,非常人性化。

  如果訪問本專案的Model直接D("Model名稱");就可以了,如果打算跨專案訪問,就使用 D("Model名稱","專案名稱");其他的就沒什麼說的了

F函式

  快速讀取和儲存檔案資料

  快速儲存資料:F("mydata","這裡是要儲存的資料"),這樣就在專案Data目錄下儲存了一個名叫mydata.php的檔案,裡邊的內容是該函式的第二個引數。

  指定儲存時間 :F("mydata","這裡是要儲存的資料","60"),這樣,如果下次再訪問,間隔大於60秒則刪除次快取檔案。

  指定儲存目錄:F("mydata","這裡是要儲存的資料","60",DATA_PATH) ,這樣就指定儲存在data目錄下

  立即刪除快取:F("mydata",null),第二個引數傳遞一個null值,這樣就刪除了mydate這個快取

  讀取快取資料:F("mydata"),這樣就讀取這個快取了

L函式

  語言定義函式,L("intro")獲取定義成intro的語言,l("intro","介紹")為intro賦值,關於這個賦值的長久性,道理同C函式一樣。

R函式

  還記得我們的A函式吧,如果僅僅想執行某個方法,其實用R函式更方便,剛才的可以替換成

PHP程式碼
  1. <?php  
  2. class TestAction extends Action{  
  3.     public function index()  
  4.     {  
  5.         $index=R("Index","myHello");  
  6.         echo $index;  
  7.     }  
  8. }  
  9. ?>  

 呵呵,是不是更簡單?

S函式

  全域性快取讀寫函式,和C類似,不過是直接寫成檔案的哦,寫在Temp目錄下,不過在快取有一點需要注意,如果快取名稱是aaa,那麼快取生成的檔名稱就是md5("aaa")的值,值得注意。

U函式

  U函式是很強大的一個函式,它主要是進行URL組裝,同時支援不同模式和路由

例如:
取得當前模組的Action地址 :U("/nowMethod");
取得當前模組的Action地址,並傳遞引數:U("/nowMethod?params=test");

  (如果不習慣上邊那種方式,可以使用U("/nowMethod",array("params"=>"test");這樣的陣列方式傳遞引數,效果是一樣的)

  訪問其他模組的方法:U("Other/otherMethod"),這樣就是訪問Other模組下的otherMethod方法
跨專案訪問:U("appname://Other/otherMethod");
使用路由訪問:U("appName://[email protected]/actionName?params");

  另外,如果想直接跳轉,那麼就在第二個引數寫1,例如U("/nowMethod",1);這樣就直接調轉到指定URL了

  好了,介紹了TP的9大函式,相信你或多或少也有些瞭解了吧。如果想了解更多更好的功能,請看function.php的程式碼,註釋很詳盡

在ThinkPHP中有許多使用簡便的單字母函式(即快捷方法),可以很方便開發者快速的呼叫,但是字母函式卻不方便記憶,本文將所有的字母函式總結一下,以方便以後查詢。

1.U() URL組裝 支援不同URL模式

?
1 U($url='',$vars='',$suffix=true,$domain=false)

  @param string $url URL表示式,格式:'[模組/控制器/操作#錨點@域名]?引數1=值1&引數2=值2...'
  @param string|array $vars 傳入的引數,支援陣列和字串
  @param string $suffix 偽靜態字尾,預設為true表示獲取配置值
  @param boolean $domain 是否顯示域名
  @return string

2.D() D函式用於例項化模型類 格式 [資源://][模組/]模型

?
1 D($name='',$layer='')

  @param string $name 資源地址
  @param string $layer 模型層名稱
  @return Model

3.M() M函式用於例項化一個沒有模型檔案的Model

?
1 M($name='',$tablePrefix='',$connection='')

  @param string $name Model名稱 支援指定基礎模型 例如MongoModel:User
  @param string $tablePrefix 表字首
  @param mixed $connection 資料庫連線資訊
  @return Model

4.I() 獲取輸入引數 支援過濾和預設值

?
1 I($name,$default='',$filter=null)

  使用方法:

?
1 2 3 I('id',0); //獲取id引數 自動判斷get或者post I('post.name','','htmlspecialchars'); //獲取$_POST['name'] I('get.'); //獲取$_GET

5.B() 執行某個行為

?
1 B($name,$tag='',&$params=NULL)

  @param string $name 行為名稱
  @param string $tag 標籤名稱(行為類無需傳入)
  @param Mixed $params 傳入的引數
  @return void

6.C() 讀取及設定配置引數

?
1 C($name=null,$value=null,$default=null)

  @param string|array $name 配置變數
  @param mixed $value 配置值
  @param mixed $default 預設值
  @return mixed

7.E() 丟擲異常處理

?
1 E($msg, $code=0)

  @param string $msg 異常訊息
  @param integer $code 異常程式碼 預設為0
  @return void

8.G() 記錄和統計時間(微秒)和記憶體使用情況

?
1 G($start,$end='',$dec=4)

  使用方法:

?
1 2 3 4 5 G('begin'); // 記錄開始標記位 // ... 區間執行程式碼 G('end'); // 記錄結束標籤位 echo G('begin','end',6); //統計區間執行時間 精確到小數後6位 echo G('begin','end','m'); // 統計區間記憶體使用情況

  如果end標記位沒有定義,則會自動以當前作為標記位
  其中統計記憶體使用需要 MEMORY_LIMIT_ON 常量為true才有效
  @param string $start 開始標籤
  @param string $end 結束標籤
  @param integer|string $dec 小數位或者m
  @return mixed

9.L()獲取和設定語言定義(不區分大小寫)

?
1 L($name=null,$value=null)

  @param string|array $name 語言變數
  @param mixed $value 語言值或者變數
  @return mixed

10.T()獲取模版檔案 格式 資源://模組@主題/控制器/操作

?
1 T($template='',$layer='')

  @param string $name 模版資源地址
  @param string $layer 檢視層(目錄)名稱
  @return string

11.N() 設定和獲取統計資料

?
1 N($key,$step=0,$save=false)

  使用方法:

?
1 2 3 4 N('db',1); // 記錄資料庫操作次數 N('read',1); // 記錄讀取次數 echo N('db'); // 獲取當前頁面資料庫的所有操作次數 echo N('read'); // 獲取當前頁面讀取次數

  @param string $key 標識位置
  @param integer $step 步進值
  @return mixed

12.A()A函式用於例項化控制器

格式:[資源://][模組/]控制器

?
1 A($name,$layer='',$level='')

  @param string $name 資源地址
  @param string $layer 控制層名稱
  @param integer $level 控制器層次
  @return Controller|false

13.R() 遠端呼叫控制器的操作方法

URL 引數格式 [資源://][模組/]控制器/操作

?
1 R($url,$vars=array(),$layer='')

  @param string $url 呼叫地址
  @param string|array $vars 呼叫引數 支援字串和陣列
  @param string $layer 要呼叫的控制層名稱
  @return mixed

14.W()渲染輸出Widget

?
1 W($name,$data=array())

  @param string $name Widget名稱
  @param array $data 傳入的引數
  @return void

15.S()快取管理

?
1 S($name,$value='',$options=null)

  @param mixed $name 快取名稱,如果為陣列表示進行快取設定
  @param mixed $value 快取值
  @param mixed $options 快取引數
  @return mixed

16.F() 快速檔案資料讀取和儲存 針對簡單型別資料 字串、陣列

?
1 F($name, $value='',$path=DATA_PATH)

  @param string $name 快取名稱
  @param mixed $value 快取值
  @param string $path 快取路徑
  @return mixed


相關推薦

tp 字母函式

A函式(基本是Action的簡寫)   A函式是用來例項化我們的Action類的,例如我們的程式有2個Action分別是IndexAction和TestAction,在 IndexAction中有個myHello方法能夠輸出hello world,如果我也想在TestAct

TP字母函式整理

有人不太喜歡TP這種單字母函式,其實這也是TP的一個特色,如果理解了這些函式的作用,不管是背,還是寫,都是非常方便的,接下來我們以字母順序開始。 A函式(基本是Action的簡寫)   A函式是用來例項化我們的Action類的,例如我們的程式有2個Action分別是Inde

ThinkPHP函式系列--字母函式

ThinkPHP中有很多重要的函式,其中大部分是單字母函式,這些函式在開發體驗中發揮了重大的作用。 為了能方便大家學習和掌握,在這裡彙總下ThinkPHP中的經典函式用法,無論你是資深還是菜鳥TPer,絕對不容錯過哦 ^_^ A 函式:例項化控制器 R 函式:直接呼叫控

例模式

餓漢式 登記式 懶漢式 單例 單例設計模式Singleton是一種創建型模式,指某個類采用Singleton模式,則在這個類被創建後,只可能產生一個實例供外部訪問,並且提供一個全局的訪問點。核心知識點如下:(1) 將采用單例設計模式的類的構造方法私有化(采用private修飾)。(2) 在其

例模式及java常用類

ont 獲得 設計 保持 BE RR instance tro 函數 【單例模式】 確保某一個類,只能產生一個實例。 設計思路: ====將構造函數私有化,確保類外部,不能使用new關鍵字自行創建對象。 ====在類內部實例化一個對象,並通過靜態方法返回。 (1)

MySQL 的函式

完整性約束 什麼是資料完整性 資料的準確性和可靠性。 分類 實體完整性 記錄準確的。(記錄不能重複) 主鍵約束: 不能重複,不能為空。  Primary key 欄位唯一的。 不能使用業務欄位。 無意義的

MySQL表查詢

一、between……and……操作符 1、查詢薪水為1600到3000的員工(第一種方式:採用>= 、<=)  例如:select empno,ename,sal from emp where sal >= 1600 and sal <= 3000; 

Vue生命週期函式

 vue例項的生命週期 1 什麼是生命週期(每個例項的一輩子) 概念:每一個Vue例項建立、執行、銷燬的過程,就是生命週期;在例項的生命週期中,總是伴隨著各種事件,這些事件就是生命週期函式; 生命週期:例項的生命週期,就是一個階段,從建立到執行,再到銷燬的階段; 生命週期函式:在例項的生命週

goinit函式

init()函式會在每個包完成初始化後自動執行,並且執行優先順序比main函式高。init 函式通常被用來: 對變數進行初始化 檢查/修復程式的狀態 註冊 執行一次計算   包的初始化        為

linux 核心 - ioctl 函式

1. 概念 ioctl 是裝置驅動程式中裝置控制介面函式,一個字元裝置驅動通常會實現裝置開啟、關閉、讀、寫等功能,在一些需要細分的情境下,如果需要擴充套件新的功能,通常以增設 ioctl() 命令的方式實現。 在檔案 I/O 中,ioctl 扮演著重要角色,本文將以驅動開發為側重

assert.ifError()函式

assert.ifError(value) 如果 value 為真值時,丟擲 value。當測試在回撥函式裡的引數 error 時非常有用。 const assert = require('assert'); assert.ifError(0); // OK assert.ifError(1); //

assert.throws()函式

assert.throws(block[, error][, message]) 期望 block 函式丟擲一個錯誤。 如果指定 error,它可以是一個建構函式、正則表示式或驗證函式。 如果指定 message,如果 block 因為失敗而丟擲錯誤,message 會是由 AssertionError 提

Swoole Echo伺服器隨意搭建 及set函式

<?php //Server Class Server { private $serv; /** * 連結swoole伺服器 * Server constructor. */ public function __construct()

深入理解計算機系統配套實驗(一) data lab 函式

/* 135. * bitAnd - x&y using only ~ and | 136. * Example: bitAnd(6, 5) = 4 137. * Legal ops: ~ | 138. * Max ops: 8 139. *

跟著別人學設計模式-----(一)例模式

    作者:zuoxiaolong8810(左瀟龍),轉載自:http://www.cnblogs.com/zuoxiaolong/p/pattern2.html             上一章

fcntl函式

功能描述:根據檔案描述詞來操作檔案的特性。 #include <unistd.h> #include <fcntl.h>  int fcntl(int fd, int cmd);  int fcntl(i

Mysql 字元函式

MySql 所有字串函式函式詳解 ASCII(str) 返回str最左邊第一位字元的ASCII編碼,如果str為空,則返回 0 。如果str為NULL,則返回NULL -- 只返回a的ASCII編碼 SELECT ASCII('ab') - 97 SELECT ASCII('a') - 97

C++建構函式及顯示呼叫建構函式

                         

單鏈表,頭插法,尾插法各種函式

一:LinkList.cpp檔案 #include <stdio.h> #include <malloc.h> //malloc函式 用了<stdlib.h>中的 <malloc.h>標頭檔案 typedef int ElemT

Opencv基礎: Mat類裡setTo函式

https://blog.csdn.net/oMoDao1/article/details/80324360 函式原型:   /** @brief Sets all or some of the array elements to the specified value. &n