PHPで【変数をリセット】する方法について教えてください。 次の get_ajax_data() における質問です。
PHPで【変数をリセット】する方法について教えてください。 次の get_ajax_data() における質問です。 ここでは valid() という検証を通した後に 「// ③検証された値を改めて取得」 し、安全な値として扱っています。 ──────────────── function get_ajax_data(){ ini_set('display_errors',1); $result = []; // ①POST $tbl = filter_input(INPUT_POST, 'tbl'); $name = filter_input(INPUT_POST, 'name'); // ②検証 $valid_data = ['tbl'=>$tbl,'name'=>$name] $valided = valid( $valid_data ); if( $valided['status'] === 'error' ){ $result['status'] = 'error'; }else{ // ③検証された値を改めて取得 $ok = $valided['ok']; $tbl = $ok['tbl']; $name = $ok['name']; // ④色々な処理 $query = "SELECT * FROM {$tbl} WHERE name = %s;"; } echo $result; } ──────────────── しかしこの③のときに $tbl = $ok['tbl']; をウッカリ書き忘れたまま、④の $query を書いてしまうことがありえますよね。すると FROM {$tbl} は①のPOSTの値がそのまま使われてしまうことになります。 そのようなリスクを避けたいというのが質問の意図です。 そこで③の直前に 【A】$result, $valided 以外の変数を全てリセット 【B】filter_input で宣言した変数を全てリセット といういずれかの処理があれば安全だと思いました。つまり $tbl と $name を $valided['ok'] 以外から引っ張れないようにリセットしておきたいのです。 一瞬 unset($tbl); と unset($name); を考えましたが、こう個々に指定する方法ではウッカリ書き忘れというリスクは変わらないので、先の【A】【B】いずれかの処理を求めています。 もしそのような方法があれば、またはより良い書き方などございましたら教えて頂けませんでしょうか。 どうぞよろしくお願い致します。