widget/WidgetHelper.php
public static function convertType($value, $type)
    {
        switch ($type) {
            case 'bool':
            case 'boolean':
                if (is_string($value)) {
                    return $value === '1' || $value === 'on' || $value === 'yes' || $value === 'true';
                }
                return !!$value;
            case 'int':
            case 'integer':
                if (is_int($value) || is_float($value) || is_double($value) || is_bool($value)) {
                    return intval($value);
                } else if (is_string($value) && is_numeric($value)) {
                    return intval($value);
                }
                return 0;
            case 'double':
            case 'float':
                if (is_int($value) || is_float($value) || is_double($value) || is_bool($value)) {
                    return $value;
                }
                if (is_string($value) && is_numeric($value)) {
                    return floatval($value);
                }
                return 0;
            case 'array':
                if (is_array($value)) {
                    return $value;
                }
                return [$value];
            default :
                return strval($value);
        }
    }
public static function convertType($value, $type)
    {
        switch ($type) {
            case 'bool':
            case 'boolean':
                if (is_string($value)) {
                    return $value === '1' || $value === 'on' || $value === 'yes' || $value === 'true';
                }
                return !!$value;
            case 'int':
            case 'integer':
                if (is_int($value) || is_float($value) || is_double($value) || is_bool($value)) {
                    return intval($value);
                } else if (is_string($value) && is_numeric($value)) {
                    return intval($value);
                }
                return 0;
            case 'double':
            case 'float':
                if (is_int($value) || is_float($value) || is_double($value) || is_bool($value)) {
                    return $value;
                }
                if (is_string($value) && is_numeric($value)) {
                    return floatval($value);
                }
                return 0;
            case 'array':
                if (is_array($value)) {
                    return $value;
                }
                return [$value];
            default :
                return strval($value);
        }
    }
类型转换
@param $value
@param $type
@return array|bool|int|string