入力フォームからPOST送信されたデータのうち、想定するキーが一つでも存在しなかった場合は処理をおこなわず、すべて存在した場合のみ処理を実行するようなコードを書くとする。
POST値の存在チェックは、empty関数やisset関数を使っておこなわれるが、単純にコードを書くと項目の数だけisset関数を使った条件分岐を書かなければならず、冗長的なコードが長く続いてしまう。
これを防ぐため存在チェックをまとめて実行する関数を用意した。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php $checkPostKey = array ( 'name' , 'kana' , 'tel' , 'email' ); if (!postArrayIsset( $checkPostKey ) { // キーに対応するPOST値がどれか一つでも存在しなければ何もしない return ; } // 全てのPOST値がセットされていれば処理実行 // Code... /** * POST存在チェック * * @param array $array * * @return boolean */ function postArrayIsset( $array ) { $postFlg = true; foreach ( $array as $val ) { if (!isset( $_POST [ $val ])) { $postFlg = false; } } return $postFlg ; } |
まず、チェックを行うPOST値のキーとなる文字列を$checkPostKeyへ配列として格納する。
postArrayIsset関数はキー配列を引数に取り、送信されるPOST値にそのキーが一つでも存在しない場合falseを返す関数だ。
これを使うことで、項目の多い入力値のチェックをおこなうコードも簡潔に書くことができる。