core/Request.php
public static function input(array $data, string $name = null, $def = null)
    {
        if (empty($name)) {
            return $data;
        }
        $type = '';
        if (preg_match('@^(.*):([abfis])@', $name, $m)) {
            $type = $m[2];
            $name = $m[1];
        }
        switch ($type) {
            case 's':
                if (!isset($data[$name])) {
                    if (is_string($def)) {
                        return $def;
                    }
                    return '';
                }
                if (is_string($data[$name])) {
                    return $data[$name];
                }
                return strval($data[$name]);
            case 'b':
                if (!isset($data[$name])) {
                    if (is_bool($def)) {
                        return $def;
                    }
                    if (is_string($def)) {
                        return $def === '1' || $def === 'on' || $def === 'yes' || $def === 'true';
                    }
                    return false;
                }
                return $data[$name] === '1' || $data[$name] === 'on' || $data[$name] === 'yes' || $data[$name] === 'true';
            case 'f':
                if (!isset($data[$name]) || !is_numeric($data[$name])) {
                    if (is_double($def) || is_float($def)) {
                        return $def;
                    }
                    return 0;
                }
                return doubleval($data[$name]);
            case 'i':
                if (!isset($data[$name]) || !is_numeric($data[$name])) {
                    if (is_integer($def)) {
                        return $def;
                    }
                    return 0;
                }
                return intval($data[$name]);
            case 'a':
                if (!isset($data[$name])) {
                    if (is_array($def)) {
                        return $def;
                    }
                    if ($def === null || $def === '') {
                        return [];
                    }
                    return [$def];
                }
                if (is_array($data[$name])) {
                    return $data[$name];
                }
                if (is_string($data[$name]) && Utils::isJson($data[$name])) {
                    return json_decode($data[$name], true);
                }
                //拆分，取值
                if (is_string($data[$name]) && preg_match('@^\d+(,\d+)*$@', $data[$name])) {
                    $retemp = [];
                    $temp = explode(',', $data[$name]);
                    foreach ($temp as $item) {
                        if (is_numeric($item)) {
                            $retemp[] = intval($item);
                        }
                    }
                    return $retemp;
                }
                if ($data[$name] === null || $data[$name] === '') {
                    return [];
                }
                return [$data[$name]];
            default:
                return isset($data[$name]) ? $data[$name] : $def;
        }
    }
public static function input(array $data, string $name = null, $def = null)
    {
        if (empty($name)) {
            return $data;
        }
        $type = '';
        if (preg_match('@^(.*):([abfis])@', $name, $m)) {
            $type = $m[2];
            $name = $m[1];
        }
        switch ($type) {
            case 's':
                if (!isset($data[$name])) {
                    if (is_string($def)) {
                        return $def;
                    }
                    return '';
                }
                if (is_string($data[$name])) {
                    return $data[$name];
                }
                return strval($data[$name]);
            case 'b':
                if (!isset($data[$name])) {
                    if (is_bool($def)) {
                        return $def;
                    }
                    if (is_string($def)) {
                        return $def === '1' || $def === 'on' || $def === 'yes' || $def === 'true';
                    }
                    return false;
                }
                return $data[$name] === '1' || $data[$name] === 'on' || $data[$name] === 'yes' || $data[$name] === 'true';
            case 'f':
                if (!isset($data[$name]) || !is_numeric($data[$name])) {
                    if (is_double($def) || is_float($def)) {
                        return $def;
                    }
                    return 0;
                }
                return doubleval($data[$name]);
            case 'i':
                if (!isset($data[$name]) || !is_numeric($data[$name])) {
                    if (is_integer($def)) {
                        return $def;
                    }
                    return 0;
                }
                return intval($data[$name]);
            case 'a':
                if (!isset($data[$name])) {
                    if (is_array($def)) {
                        return $def;
                    }
                    if ($def === null || $def === '') {
                        return [];
                    }
                    return [$def];
                }
                if (is_array($data[$name])) {
                    return $data[$name];
                }
                if (is_string($data[$name]) && Utils::isJson($data[$name])) {
                    return json_decode($data[$name], true);
                }
                //拆分，取值
                if (is_string($data[$name]) && preg_match('@^\d+(,\d+)*$@', $data[$name])) {
                    $retemp = [];
                    $temp = explode(',', $data[$name]);
                    foreach ($temp as $item) {
                        if (is_numeric($item)) {
                            $retemp[] = intval($item);
                        }
                    }
                    return $retemp;
                }
                if ($data[$name] === null || $data[$name] === '') {
                    return [];
                }
                return [$data[$name]];
            default:
                return isset($data[$name]) ? $data[$name] : $def;
        }
    }
数据输入格式化
@param array $data
@param string|null $name
@param null $def
@return array|bool|float|mixed|null|string