在thinkphp中,I方法的命名來自于“Input”,用于更加安全和方便的獲取系統(tǒng)輸入變量,語法為“I(‘變量類型.變量名’,[‘默認值’],[‘過濾方法’])”;其中變量類型不區(qū)分大小寫,而變量名嚴格區(qū)分大小寫。
本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP5版、Dell G3電腦。
thinkphp中I方法怎么用
ThinkPHP的I方法是眾多單字母函數(shù)中的新成員,其命名來自于英文Input(輸入),主要用于更加方便和安全的獲取系統(tǒng)輸入變量,可以用于任何地方,用法格式如下:
I(‘變量類型.變量名’,[‘默認值’],[‘過濾方法’])變量類型是指請求方式或者輸入類型。
各個變量類型的含義如下:變量類型含義
立即學習“PHP免費學習筆記(深入)”;
-
get獲取GET參數(shù)
-
post獲取POST參數(shù)
-
param自動判斷請求類型獲取GET、POST或者PUT參數(shù)
-
request獲取REQUEST 參數(shù)
-
put獲取PUT 參數(shù)
-
session獲取 $_SESSION 參數(shù)
-
cookie獲取 $_COOKIE 參數(shù)
-
server獲取 $_SERVER 參數(shù)
-
globals獲取 $GLOBALS參數(shù)
注意:變量類型不區(qū)分大小寫。
變量名則嚴格區(qū)分大小寫。
默認值和過濾方法均屬于可選參數(shù)。
1.用法:
我們以GET變量類型為例,說明下I方法的使用:
echo?I('get.id');?//?相當于?$_GET['id'] echo?I('get.name');?//?相當于?$_GET['name']
支持默認值:
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']?如果不存在則默認為0 I('cookie.');?//?獲取整個?$_COOKIE?數(shù)組 I('server.REQUEST_METHOD');?//?獲取?$_SERVER['REQUEST_METHOD']
param變量類型是框架特有的支持自動判斷當前請求類型的變量獲取方式,例如:
echo?I('param.id');
如果當前請求類型是GET,那么等效于 $_GET[‘id’],如果當前請求類型是POST或者PUT,那么相當于獲取 $_POST[‘id’] 或者 PUT參數(shù)id。
并且param類型變量還可以用數(shù)字索引的方式獲取URL參數(shù)(必須是PATHINFO模式參數(shù)有效,無論是GET還是POST方式都有效),例如:
當前訪問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')
推薦學習:《PHP視頻教程》