改进Input类

This commit is contained in:
thinkphp
2016-05-17 17:13:07 +08:00
parent 5a01b29c30
commit f6efaba3e6

View File

@@ -261,39 +261,37 @@ class Input
if (0 === strpos($name, '?')) { if (0 === strpos($name, '?')) {
return self::has(substr($name, 1), $input); return self::has(substr($name, 1), $input);
} }
if (!empty($input)) {
$data = $input; $data = $input;
$name = (string) $name; $name = (string) $name;
if ('' != $name) { if ('' != $name) {
// 解析name // 解析name
list($name, $type) = static::parseName($name); list($name, $type) = static::parseName($name);
// 按.拆分成多维数组进行判断 // 按.拆分成多维数组进行判断
foreach (explode('.', $name) as $val) { foreach (explode('.', $name) as $val) {
if (isset($data[$val])) { if (isset($data[$val])) {
$data = $data[$val]; $data = $data[$val];
} else { } else {
// 无输入数据,返回默认值 // 无输入数据,返回默认值
return $default; return $default;
}
} }
} }
// 解析过滤器
$filters = static::parseFilter($filter, $merge);
// 为方便传参把默认值附加在过滤器后面
$filters[] = $default;
if (is_array($data)) {
array_walk_recursive($data, 'self::filter', $filters);
} else {
self::filter($data, $name ?: 0, $filters);
}
if (isset($type) && $data !== $default) {
// 强制类型转换
static::typeCast($data, $type);
}
} else {
$data = [];
} }
// 解析过滤器
$filters = static::parseFilter($filter, $merge);
// 为方便传参把默认值附加在过滤器后面
$filters[] = $default;
if (is_array($data)) {
array_walk_recursive($data, 'self::filter', $filters);
} else {
self::filter($data, $name ?: 0, $filters);
}
if (isset($type) && $data !== $default) {
// 强制类型转换
static::typeCast($data, $type);
}
return $data; return $data;
} }