public static function applyRules($params)
{
$result = array();
if (!$params) {
return false;
}
foreach (static::$_rules as $name => $rules) {
foreach ($rules as $rule) {
if (!empty($params[$name]) && isset($rule[0])) {
$options = array_merge(array($params[$name]), isset($rule[2]) ? (array) $rule[2] : array());
$result[$name] = call_user_func_array(array($rule[0], $rule[1]), $options);
}
}
}
return $result + array_diff_key($params, $result);
}