tp 單字母函式詳解
A函式(基本是Action的簡寫)
A函式是用來例項化我們的Action類的,例如我們的程式有2個Action分別是IndexAction和TestAction,在 IndexAction中有個myHello方法能夠輸出hello world,如果我也想在TestAction中也輸出同樣一段文字怎麼辦?最原始的方法首先我們匯入IndexAction.class.php這個文 件,然後new IndexAction,最後呼叫myHello方法才行。
程式碼一般為 :
- <?php
- import("@.Action.Index");
- //匯入本專案目錄下Action目錄下的Index.class.php檔案。
- class TestAction extends Action{
- public function index()
- {
- $index=new IndexAction();//例項化IndexAction
- echo $index->myHello();//呼叫myHello()方法
- }
- }
- ?>
那麼,如果我們用A函式,怎麼寫呢?
PHP程式碼- <?php
- class TestAction extends Action{
- public function index()
- {
- $index
- echo $index->myHello();
- }
- }
- ?>
呵呵,少寫很多程式碼吧。當然,這還不是最偷懶的方法,請看下邊的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程式碼- <?php
- class TestAction extends Action{
- public function index()
- {
- $index=R("Index","myHello");
- echo $index;
- }
- }
- ?>
呵呵,是不是更簡單?
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
單鏈表,頭插法,尾插法各種函式詳解
一: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