在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->isAjax()。 以上就是ThinkPHP6中獲取參數的各種方式,可能還不是很全,但是掌握這些基本能滿足大部分情形下的參數獲取啦…
以上是ThinkPHP6中取得參數的3種常用方法【總結】的詳細內容。更多資訊請關注PHP中文網其他相關文章!