下面給大家介紹三種ThinkPHP6中獲取參數的方法,希望對需要的朋友有所幫助!
在ThinkPHP6中獲取參數有多種方法,也有很多使用小技巧,很多新手經常知道一種方法,后來在看別人代碼的時候又發現第二種、第三種,一頭霧水了……
下面咱們就縷一縷ThinkPHP6中獲取參數有多種方法。
我們先假設有以下url:
A:http://www.a.com/index/index/hello/id/1.html
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 think\facade\Request;
檢測變量是否設置:
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->isGet()、request?>isGet()、request->isAjax()。
以上就是ThinkPHP6中獲取參數的各種方式,可能還不是很全,但是掌握這些基本能滿足大部分情形下的參數獲取啦……