受信配列パラメータのフィールド A、B、および C が必須フィールドであり、D、E、および F が可能なフィールドであり、他のフィールドが存在してはいけないことを判断します。
- /**
- * 質問: 入力される配列パラメータ $params のフィールドを判断してください
- *
- * 1. A、B、C は必須フィールドです
- * 2. D、E、F は可能なフィールドです
- * 3. その他は、存在してはいけません
- *
- * @author yearnfar
- */
- //方法 1:
- $must = array('A','B','C');
- $maybe = array( 'D','E','F');
- foreach($must as $key) {
- if (!isset($params[$key])) exit("{$key} でなければなりません!");
- }
- foreach($params as $key => $value) {
- if (!in_array($key, $must)) && in_array($key, $maybe)) {
- exit("{$key}不正です! ");
- }
- }
-
- //メソッド 2:
- $fields = array('A' => 1,'B' => 1,'C' => 1,
- 'D' => 0,'E' => 0,'F' => 0);
-
- foreach ($params as $key => $value) {
- if (!isset($fields[$key]) )) {
- exit("{$key} は不正です!");
- } elseif ($fields[$key]>0) {
- $fields[$key] = 0;
- }
- }
-
- if ( array_sum ($fields)>0) {//または if (max($fields) > 0)
- exit("必須フィールドがありません");
- }
-
- // メソッド 3:
- $fields = array() ;
-
- foreach ($params as $key => $value) {
-
- switch ($key) {
- case 'A':
- case 'B':
- case 'C':
- $fields[$key] = 0;
- ブレーク;
- ケース 'D':
- ケース 'E':
- ケース 'F':
- ブレーク;
- デフォルト:
- exit("{$key} は不正です!");
- }
- }
-
- if ( count($fields)!=3) {
- exit("必須フィールドがありません");
- }
コードをコピー
|