jrfnl/php-cast-to-type

PHP类,用于将变量一致地转换为特定类型。

2.1.0 2022-11-13 12:22 UTC

This package is auto-updated.

Last update: 2024-09-04 06:43:17 UTC


README

GitHub license CS Lint

PHP-cast-to-type

PHP类,用于将变量一致地转换为特定类型。

返回指定类型的值或 null

特性

  • 跨PHP版本的一致结果。
  • 兼容PHP4、PHP5和PHP7,如果你正在为不知道库用户PHP版本的开源软件编码,并且 filter_var() 函数可能不可用,则特别有用。
  • 可选地递归地将数组中的所有值转换为选择的类型(类似于 filter_var_array() 的行为)。
  • 可选地允许/禁止空字符串/数组。
  • 将以下字符串值成功转换为它们的布尔对应值(类似于 filter_var() 的行为,但不太区分大小写)。
    • True: '1', 'true', 'True', 'TRUE', 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON'
    • False: '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 扩展。

独立使用

  1. 前往 发布 页面,并下载最新的发布zip文件。
  2. 提取文件并将它们放置在项目层次结构中的某个位置。
  3. 使用 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 (2022年11月)

  • 允许在 CastToType::cast() 方法中将 double 作为 float 的别名。感谢 @nsrosenqvist 的贡献。
  • 错误修复:在转换为布尔值时,字符串 ON 没有被识别为真值。
  • 已明确要求 ctype 扩展。
  • 主分支已从 master 重命名为 main
  • 一般维护。

2.0.1 (2018年1月)

  • 修复了PHP跨版本兼容性问题。这影响了在PHP < 5.2.7上使用此类。
  • 一般维护。

2.0 (2015年6月)

  • 更新了对象转换,使其与PHP7中的实现方式保持一致,以实现跨版本兼容。以前,具有数字键的数组转换为对象时,会作为名为array的属性添加到对象中,其值为完整的数组。现在,与PHP7一样,每个数字数组键都将转换为单个属性。这将打破与v1.0版本在数组到对象转换结果方面的向后兼容性,因此请检查您的代码,如果依赖于旧的行为。
  • 修复了对象转换中的一个错误,该错误会在PHP <= 5.1中将非对象转换为对象时返回null
  • 修复了对象转换中的一个错误,其中空字符串在设置$allow_emptyfalse时不会返回null

1.0(2006年/2013年9月)

  • 首次发布。