<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                #### 請求變量 ThinkPHP5使用了請求對象(由think\Request類實現)來記錄當前請求的相關信息和執行相關操作,而獲取請求變量是請求對象的一個重要用途。 例如,在原生PHP開發中經常會被使用的 $_GET、$_POST、$_SESSION和$_COOKIE等變量都被統一封裝到請求對象的方法里面,取而代之的是使用請求對象的get()、post()、session()和 cookie()方法來獲取當前請求的系統變量。 為什么要用請求對象的方法來替代原生的系統變量呢?首先直接操作系統變量存在很多的不便和不足,例如大寫變量、不支持過濾和批量讀取、排除等等細節,其次,也不利于單元測試。 在控制器操作方法中獲取請求變量的方法如下: ~~~ <?php namespace app\index\controller; use think\Request; class Index { public function hello() { // 獲取當前的GET變量 dump(Request::instance()->get()); // 或者使用助手函數 dump(request()->get()); } } ~~~ `request`函數是系統提供的一個簡化讀取的助手函數,用于獲取當前請求對象的單例。在`ThinkPHP5`中,你不需要根據當前請求類型來判斷使用`get()`還是`post()`方法(事實上這是一個很愚蠢的做法),框架提供了一個專門的`param()`方法來統一獲取當前請求的變量,會自動識別當前的請求類型(支持`PUT`/`DELETE`等所有的請求類型)獲取不同的請求變量,例如: ~~~ <?php namespace app\index\controller; use think\Request; class Index { public function hello() { // 獲取當前的請求變量 dump(Request::instance()->param()); // 或者使用助手函數 dump(request()->param()); } } ~~~ 獲取單個變量的方式 ~~~ <?php namespace app\index\controller; use think\Request; class Index { public function hello() { // 獲取當前的請求變量 dump(Request::instance()->param('name')); // 或者使用助手函數 dump(request()->param('name')); } } ~~~ 官方的建議是最好棄用get()、post() 這些方法,直接使用param()方法。 param方法的優勢包括:支持統一過濾以及更方便的調用多級變量,下面舉個例子說明。 > 框架默認并沒有設置任何的過濾機制,請根據應用的需要設置全局的過濾規則。 首先設置全局過濾規則如下: ~~~ // 默認全局過濾方法 'default_filter' => 'htmlspecialchars', ~~~ 控制器的hello方法改為: ~~~ <?php namespace app\index\controller; use think\Request; class Index { public function hello() { // 獲取當前的請求變量 dump(Request::instance()->param('data.name', '', 'strtoupper')); // 或者使用助手函數 dump(request()->param('data.name', '', 'strtoupper')); } } ~~~ 如果要判斷某個請求變量是否存在,可以使用: ~~~ <?php namespace app\index\controller; use think\Request; class Index { public function hello() { // 判斷變量是否存在(當前請求變量中) dump(request()->has('name')); // 判斷是否存在get變量 dump(request()->has('name', 'get')); // 或者使用助手函數 dump(input('?name')); dump(input('?get.name')); } } ~~~ 系統還提供了獲取多個變量的篩選方法(不是獲取所有變量): ~~~ <?php namespace app\index\controller; class Index { public function hello() { // 獲取請求變量中的id和name變量 dump(request()->only('id,name')); // 獲取請求變量中的id以外的變量 dump(request()->except('id')); } } ~~~ `only`表示只獲取部分變量,`except`表示獲取除了排除變量之外的所有變量 在模板文件中輸出請求變量,可以無需進行模板變量賦值而是直接輸出即可,方式如下: ~~~ {// 輸出name請求變量 } {$Request.param.name} ~~~ ![](https://box.kancloud.cn/83596907e25afa981ed0afc7b5dc7add_387x589.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看