对传入的数组参数的字段进行判断, A、B、C是必须字段, D、E、F是可能有的字段,其他为一定不能有的字段
- /**
- * QUESTION : 对传入的数组参数$params的字段进行判断
- *
- * 1. A、B、C是必须字段
- * 2. D、E、F是可能有的字段
- * 3. 其他为一定不能有的字段
- *
- * @author yearnfar
- */
-
- //方法一:
- $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}非法!");
- }
- }
-
- //方法二:
- $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("缺少必须字段");
- }
-
- //方法三:
- $fields = array();
-
- foreach ($params as $key => $value) {
-
- switch ($key) {
- case 'A':
- case 'B':
- case 'C':
- $fields[$key] = 0;
- break;
- case 'D':
- case 'E':
- case 'F':
- break;
- default:
- exit("{$key}非法!");
- }
- }
-
- if (count($fields)!=3) {
- exit("缺少必须字段");
- }
复制代码
|