下面由thinkphp框架教程欄目給大家介紹三種thinkphp6中獲取參數的方法,希望對需要的朋友有所幫助!
在ThinkPHP6中獲取參數有多種方法,也有很多使用小技巧,很多新手經常知道一種方法,后來在看別人代碼的時候又發現第二種、第三種,一頭霧水了……
下面咱們就縷一縷ThinkPHP6中獲取參數有多種方法。
我們先假設有以下url:
A:http://www.a.com/index/index/hello/id/1.html
立即學習“PHP免費學習筆記(深入)”;
B:http://www.a.com/index/index/hello?id=1
C:http://www.a.com/index/index/hello?name=12aa
D:http://www.a.com/index/index/hello?name=aa123dd
第一種:依賴注入
dump($this->request->param());//所有參數,返回數組
array:1?[ ??"name"?=>?"1" ?]
dump($this->request->param(‘id’));//具體參數,返回字符串
dump($this->request->get(‘id’));//只對B類url生效
dump($this->request->param(‘name’,‘aaa’));//如果沒有name參數傳遞,設置默認值,返回字符串aaa
dump($this->request->param(‘name’,‘1’,‘intval’));對接收的參數轉整型,A類url返回默認值1,C類URL返回12,D類url返回0
第二種:使用助手函數
var_dump(input(‘id’));//A類url和B類url都返回字符串1。C類url和D類url沒有傳遞則返回NULL
第三種:靜態獲取
使用之前先引入use thinkfacadeRequest;
檢測變量是否設置:
Request::has(‘id’,‘get’);A類url和B類url都返回返回ture,C類url和D類url返回false
Request::has(‘name’,‘post’);檢測是否有post過來的name,返回ture或者false
Request::param(‘name’);// 獲取當前請求的name變量,返回字符串,不傳遞輸出null
Request::param();// 獲取當前請求的所有變量(經過過濾)
Request::param(false);// 獲取當前請求未經過濾的所有變量
Request::param([‘name’, ‘email’]);// 獲取部分變量
最后:
除此之外,在一些情況下,我們還需要判定是什么請求,
比如:
if($request->isPost()){ ????//判斷是否是post請求}
類似的情形還有request->isAjax()。