protected $_validate=array( array('goods_name','require','商品名不能为空','require'), array('cat_id','value','分类名只能为整数','number'), array('goods_number','field','库存名只能为整数','number'), array('goods_price','field','商品价只能为整数','number'), array('is_hot','value','数值只能在0和1之间','in','0,1'), array('is_new','value','数值只能在0和1之间','in','0,1') );
public function Vadidata($data){ if (!empty($this->_validate)) { foreach ($this->_validate as $val){ switch ($val[1]){ case 'require': //必须验证的字段 if(false===$this->VadidateField($data, $val)){ $this->error=$val[2]; return false; } break; case 'value': //有该值就验证 if (''!=trim($data[$val[0]])) { if(false===$this->VadidateField($data, $val)){ $this->error=$val[2]; return false; } } break; case 'field': //有该字段就验证 if (!empty($data[$val[0]])) { if(false===$this->VadidateField($data, $val)){ $this->error=$val[2]; return false; } } break; } } } return true; } protected function VadidateField($data,$val){ switch ($val[3]){ case 'require': return !empty($data[$val[0]]); case 'in': case 'between': $parm=explode(',', $val[4]); $min=min($parm);$max=max($parm); if ($val[3]=='in') { return in_array($data[$val[0]], $parm); } if ($val[3]=='between') { return $data[$val[0]]>$min && $data[$val[0]]<$max; } case 'number': return is_numeric($data[$val[0]]); } }