thinkphp中i方法的代碼是“I(‘變量類型.變量名’,[‘默認(rèn)值’],[‘過濾方法’],[‘額外數(shù)據(jù)源’])”;i方法命名來自“input”,是輸入的意思,用于更加方便和安全的獲取系統(tǒng)輸入變量,必要時還可以對變量值進行過濾及強制轉(zhuǎn)換。
本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP5版、Dell G3電腦。
thinkphp中i方法的代碼是什么
是ThinkPHP眾多單字母函數(shù)中的新成員,其命名來自于英文Input(輸入),主要用于更加方便和安全的獲取系統(tǒng)輸入變量,可以用于任何地方,用法格式如下:
I(‘變量類型.變量名/修飾符’,[‘默認(rèn)值’],[‘過濾方法或正則’],[‘額外數(shù)據(jù)源’])
變量類型是指請求方式或者輸入類型,包括:
注意:變量類型不區(qū)分大小寫。
變量名則嚴(yán)格區(qū)分大小寫。
默認(rèn)值和過濾方法均屬于可選參數(shù)。
用法
我們以GET變量類型為例,說明下I方法的使用:
echo I('get.id'); // 相當(dāng)于 $_GET['id'] echo I('get.name'); // 相當(dāng)于 $_GET['name']
支持默認(rèn)值:
echo I('get.id',0); // 如果不存在$_GET['id'] 則返回0 echo I('get.name',''); // 如果不存在$_GET['name'] 則返回空字符串
采用方法過濾:
echo I('get.name','','htmlspecialchars'); // 采用htmlspecialchars方法對$_GET['name'] 進行過濾,如果不存在則返回空字符串
支持直接獲取整個變量類型,例如:
I('get.'); // 獲取整個$_GET 數(shù)組
用同樣的方式,我們可以獲取post或者其他輸入類型的變量,例如:
I('post.name','','htmlspecialchars'); // 采用htmlspecialchars方法對$_POST['name'] 進行過濾,如果不存在則返回空字符串 I('session.user_id',0); // 獲取$_SESSION['user_id'] 如果不存在則默認(rèn)為0 I('cookie.'); // 獲取整個 $_COOKIE 數(shù)組 I('server.REQUEST_METHOD'); // 獲取 $_SERVER['REQUEST_METHOD']
param變量類型是框架特有的支持自動判斷當(dāng)前請求類型的變量獲取方式,例如:
echo I('param.id');
如果當(dāng)前請求類型是GET,那么等效于 $_GET['id'],如果當(dāng)前請求類型是POST或者PUT,那么相當(dāng)于獲取 $_POST['id'] 或者 PUT參數(shù)id。
并且param類型變量還可以用數(shù)字索引的方式獲取URL參數(shù)(必須是PATHINFO模式參數(shù)有效,無論是GET還是POST方式都有效),例如:
當(dāng)前訪問URL地址是
http://serverName/index.php/New/2013/06/01
那么我們可以通過
echo I('param.1'); // 輸出2013 echo I('param.2'); // 輸出06 echo I('param.3'); // 輸出01
事實上,param變量類型的寫法可以簡化為:
I('id'); // 等同于 I('param.id') I('name'); // 等同于 I('param.name')
推薦學(xué)習(xí):《PHP視頻教程》