ホームページ >PHPフレームワーク >ThinkPHP >TP5.0.x コマンドがフィルターを実行する方法について説明しましょう。
次の thinkphp Framework チュートリアル コラムでは、Thinkphp5.0.x コマンドでフィルターを実行する方法を紹介します。
Thinkphp5.0.x コマンドの実行
また、Request クラスでコマンドの実行に <span style="color:#c7254e;">call_user_func()</span>
を使用します。関数 filterValue で実行 [推奨: thinkphp ビデオ チュートリアル ]
最初にどの関数が filterValue を呼び出すかを検索します:
リクエスト内class FilterValue() は cookie() 関数と input() 関数で呼び出されます
Cookie 関数呼び出しを検索しますが、結果が見つかりませんでした。入力呼び出しを検索します:
##実行関数のフォローアップ: Step1 In
$request = is_null($request) ? リクエスト::インスタンス() : $request;
はリクエストのコンストラクターを実行しますが、このとき file_get_contents( 'php: //input') は POST のコンテンツを取得し、それを $request->input 変数に割り当てます#Step2
$ディスパッチ= self::#routeCheck($リクエスト, $config);
routeCheck では、Route クラスのチェック関数を入力します。
チェック関数は、$request->method() を呼び出します。
Incoming パラメータのデフォルト値は false で、elseif で実行され、var_method => _method が取得されます。取得した変数は以下に上書きされます。このとき、__construct を渡すと、$_POST が実行されます。 post によって送信されたデータを取得します。これは構築関数で使用できます。 POST 配列をトラバースして、リクエスト クラスのメンバーを上書きします次の使用プロセスには次の必要があります: デバッグ モードがオンです
Param():param 関数をフォローアップします:
/**
* 現在のリクエストのパラメータを取得します
* @access public
* @param string|array $name 変数名
* @parammixed $default デフォルト値
* @param string|array $filter フィルターメソッド
* @returnmixed
*/
最初に if 条件を入力し、メソッドメソッドをフォローアップします
##method() 受信パラメータが true: 次のステートメントを実行します: 元のリクエスト タイプを取得します$_SERVER['REQUEST_METHOD']、戻り値は POST
Return です。 to param, $ method=POST したがって、スイッチの POST 部分が実行され、ポスト関数が入力されます: ポスト関数: / ** * POSTパラメータの設定と取得 * @access public * @param string $name 変数名 * @parammixed $default デフォルト値 * @param string|array $filter フィルター メソッド * @returnmixed*/ パラメータを渡します: 、$contentにコピーし、$_POSTとjson形式かどうかを判定します。jsonが渡された場合はjson_decodeが必要です。それ以外の場合は、$_POSTの値が直接使用されます。 入力メソッドを入力します。受信パラメータは POST です。取得した 名前は false、 input はデータを返し、post() は param() 関数を直接返します。 媒体:$vars = $this- >post(false);
getFilter を入力してください: # ##################################getFilter in$filter = $filter ?: $this-> filter;$request クラス (以前にコンストラクト トラバーサルで説明した) のフィルター変数値を取得し、それを入力関数への戻り値として渡します
実行を継続array_walk_recursive($data, [$this , 'filterValue'], $filter);
##array_walk_recursive() この関数は、配列内の各要素にユーザー定義関数を適用します。関数では、配列のキー名とキー値がパラメータです。
は ## から取得した $filters=system と同等です。 #$ data の各変数は、$value として渡されます。 systemcall_user_func の最初のパラメータとして、ipconfig を取得します。 2 つ目は、コマンドの実行を引き起こしました。 結果:
以上がTP5.0.x コマンドがフィルターを実行する方法について説明しましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。