thinkphp 中 i() 是獲取變數值,可以通過這個方法,對變數進行驗證,從而保證了資料的可靠性。
i('變數型別.變數名/修飾符',['預設值'],['過濾方法'],['額外資料來源'])
變數型別是指請求方式或者輸入型別,包括:
變數型別
含義get
獲取get引數
post
獲取post引數
param
自動判斷請求型別獲取get、post或者put引數
request
獲取request 引數
put獲取put 引數
session
獲取 $_session 引數
cookie
獲取 $_cookie 引數
server
獲取 $_server 引數
globals
獲取 $globals引數
path
獲取 pathinfo模式的url引數(3.2.2新增)
data
獲取 其他型別的引數,需要配合額外資料來源引數(3.2.2新增)
注意:變數型別不區分大小寫。
變數名則嚴格區分大小寫。
預設值和過濾方法均屬於可選引數。
變數修飾符是3.2.3版本新增
[php]view plain
copy
echo
i('get.id'
); // 相當於 $_get['id']
echo
i('get.name'
); // 相當於 $_get['name']
[php]view plain
copy
// 採用htmlspecialchars方法對$_get['name'] 進行過濾,如果不存在則返回空字串
echo
i('get.name',''
,'htmlspecialchars'
);
[php]view plain
copy
// 獲取整個$_get 陣列
i('get.'
);
[php]view plain
copy
i('server.request_method'
); // 獲取 $_server['request_method']
param變數型別是框架特有的支援自動判斷當前請求型別的變數獲取方式,例如:
echo i('param.id');
如果當前請求型別是get,那麼等效於 $_get['id'],如果當前請求型別是post或者put,那麼相當於獲取 $_post['id'] 或者 put引數id。
由於param型別是i函式預設獲取的變數型別,因此事實上param變數型別的寫法可以簡化為:
[php]view plain
copy
i('id'
); // 等同於 i('param.id')
i('name'
); // 等同於 i('param.name')
path型別變數可以用於獲取url引數(必須是pathinfo模式引數有效,無論是get還是post方式都有效),例如: 當前訪問url位址是http://servername/index.php/new/2013/06/01
[php]view plain
copy
echo
i('path.1'
); // 輸出2013
echo
i('path.2'
); // 輸出06
echo
i('path.3'
); // 輸出01
如果沒有在呼叫i函式的時候指定過濾方法的話,系統會採用預設的過濾機制(由default_filter配置),事實上,該引數的預設設定是:
[php]view plain
copy
// 系統預設的變數過濾機制
'default_filter'
=>
'htmlspecialchars'
也就說,i方法的所有獲取變數如果沒有設定過濾方法的話都會進行htmlspecialchars過濾,那麼:
[php]view plain
copy
// 等同於 htmlspecialchars($_get['name'])
i('get.name'
);
支援多個過濾,例如:
[php]view plain
copy
'default_filter'
=>
'strip_tags,htmlspecialchars'
3.2.3版本開始,i函式支援對變數使用修飾符功能,可以更好的過濾變數。
i('變數型別.變數名/修飾符');
[php]view plain
copy
i('get.id/d'
);
i('post.name/s'
);
i('post.ids/a'
);
可以使用的修飾符包括:
修飾符作用
s強制轉換為字串型別
d強制轉換為整形型別
b強制轉換為布林型別
a強制轉換為陣列型別
f強制轉換為浮點型別
TP框架中S函式使用方法
tp框架中s函式使用步驟 初始化 type為快取方式 prefix為快取字首標示,也就是名字 expire為生存週期 我這裡設定快取方式為xcache,名字ticket,週期7100秒 cache s array type xcache prefix ticket expire 7100 設定該快取...
TP框架中命名空間
3.2版本全面採用命名空間方式定義和載入類庫檔案,有效的解決多個模組之間的衝突問題,並且實現了更加高效的類庫自動載入機制。命名空間的概念必須了解,否則會成為3.2版本開發的重大障礙。如果不清楚什麼是命名空間,可以參考php手冊 php命名空間 由於新版完全採用了命名空間的特性,因此只需要給類庫正確定...
tp框架中的命名空間
首先是我對命名空間的理解,命名空間相當於乙個空間,拿班級做比方,不同的班級就是不同的空間,每個班級都有叫小明的同學,但是不會因為有兩個小明而產生矛盾。這就是命名空間的作用 同乙個請求裡面,相同函式,類名,常亮不能出現多次 function chat echo demo changliang 訪問元素...