jrfnl / php-cast-to-type
PHP类,用于将变量一致地转换为特定类型。
2.1.0
2022-11-13 12:22 UTC
Requires
- php: >=5.0
- ext-ctype: *
Requires (Dev)
README
PHP-cast-to-type
PHP类,用于将变量一致地转换为特定类型。
返回指定类型的值或 null
。
特性
- 跨PHP版本保持一致的结果。
- 兼容PHP4、PHP5和PHP7,如果您正在为开源软件编码,其中您不知道库用户的PHP版本,并且
filter_var()
函数可能不可用,这使它非常有用。 - 可选地递归地将数组中所有值转换为所选类型(类似于
filter_var_array()
的行为)。 - 可选地允许/不允许空字符串/数组。
- 将以下字符串值成功转换为它们的布尔对应值(类似于
filter_var()
的行为,但不太区分大小写)。- 真:
'1', 'true', 'True', 'TRUE', 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON'
。 - 假:
'0', 'false', 'False', 'FALSE', 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'
。
- 真:
- 支持将
SplType
对象转换为类型。
一些使用示例
$value = 'example'; $value = CastToType::_bool( $value ); // null $value = 'true'; $value = CastToType::_bool( $value ); // true $value = '123'; $value = CastToType::_int( $value ); // 123 $value = array( '123' ); $value = CastToType::_int( $value ); // null $value = CastToType::_int( $value, $array2null = false ); // array( 123 )
可用方法
所有方法都是静态的。
-
CastToType::cast( $value, $type, $array2null = true, $allow_empty = true, $implode_array = false );
-
CastToType::_bool( $value, $array2null = true, $allow_empty = true );
-
CastToType::_int( $value, $array2null = true, $allow_empty = true );
-
CastToType::_float( $value, $array2null = true, $allow_empty = true );
-
CastToType::_string( $value, $array2null = true, $allow_empty = true );
-
CastToType::_array( $value, $allow_empty = true );
-
CastToType::_object( $value, $allow_empty = true );
-
CastToType::_null( $value );
参数
安装
要求
此包需要PHP本地 ctype
扩展。
独立
- 前往 发布 页面并下载最新版本压缩包。
- 解压缩文件并将它们放置在项目层次结构中的某个位置。
- 使用
require_once '/path/to/cast-to-type.php';
调用类加载器。
Composer
如果您使用的是PHP5+(您应该这样做),PHP-Cast-to_Type 也可用作可通过Composer安装的 包。
composer require jrfnl/PHP-cast-to-type
变更日志
2.1.0 (Nov 2022)
- 允许在
CastToType::cast()
方法中将double
作为float
的别名。感谢 @nsrosenqvist 的贡献。 - 错误修复:字符串
ON
在转换为布尔值时未被识别为真值。 - 已明确声明对
ctype
扩展的要求。 - 主分支已从
master
重命名为main
。 - 一般维护。
2.0.1 (Jan 2018)
- 修复了PHP跨版本兼容性问题。这影响了在PHP < 5.2.7上使用此类。
- 一般维护。
2.0 (Jun 2015)
- 更新了对象转换方式,使其与PHP7中的实现方式保持一致,以确保跨版本兼容性。之前,将具有数值键的数组转换成对象时,会以
array
属性的形式添加到对象中,其值为完整的数组。现在,正如PHP7中的实现,每个数值数组键都将转换为一个单独的属性。这将打破与v1.0版本在数组到对象转换结果上的向后兼容性,因此如果您的代码依赖于旧的行为,请仔细检查您的代码。 - 修复了对象转换中的一个错误,在PHP <= 5.1中,将非对象转换为对象时会返回
null
。 - 修复了对象转换中的一个错误,当
$allow_empty
设置为false
时,空字符串不会返回null
。
1.0(2006 / 2013年9月)
- 初始发布。