squirrelphp / scalar-types

通过函数显式访问PHP的强制模式和严格模式的行为。

v0.2.1 2022-06-01 09:06 UTC

This package is auto-updated.

Last update: 2024-08-29 05:56:20 UTC


README

Packagist Version PHP Version Software License

通过函数显式访问PHP的强制模式和严格模式的行为:包括强制转换和is_coerceable检查,它们类似于PHP中的隐式标量类型强制转换,以及一种强制执行特定标量类型的方法,模拟PHP严格模式的行为。

安装

composer require squirrelphp/scalar-types

目录

测试值是否可以强制转换

所有这些函数都接受一个混合参数 $value 并返回true或false

is_coerceable_to_int

如果$value是以下之一则返回true

  • 一个整数
  • 一个没有小数部分的浮点数
  • 一个没有小数部分的数字字符串
  • 一个布尔值

对于任何其他值,它返回false。

is_coerceable_to_float

如果$value是以下之一则返回true

  • 一个整数
  • 一个浮点数
  • 一个数字字符串
  • 一个布尔值

对于任何其他值,它返回false。

is_coerceable_to_bool

如果$value是以下之一则返回true

  • 值为0或1的整数
  • 值为0或1的浮点数
  • 一个空字符串
  • 值为'0'或'1'的字符串
  • 一个布尔值

对于任何其他值,它返回false。

is_coerceable_to_string

如果$value是以下之一则返回true

  • 一个整数
  • 一个浮点数
  • 一个字符串
  • 一个布尔值
  • 具有__toString魔术方法的对象

对于任何其他值,它返回false。

强制转换值

所有这些函数都接受一个混合参数 $value 并返回它们强制转换到的类型,遵循与PHP中隐式类型强制转换相同的逻辑。

coerce_to_int

像PHP 8.2那样强制转换值,这可能导致非标量和非数字值的TypeError,并针对有分数部分的浮点数或数字字符串发出弃用通知。

coerce_to_float

像PHP 8.2那样强制转换值,这可能导致非标量和非数字值的TypeError。

coerce_to_bool

像PHP 8.2那样强制转换值,这可能导致非标量值的TypeError,并针对除""、"0"、"1"、0、1、0.0和1.0以外的值发出弃用通知。

coerce_to_string

像PHP 8.2那样强制转换值,这可能导致非标量值的TypeError,除非它是一个实现了__toString魔术方法的对象。

强制执行值的类型

所有这些函数都接受一个混合参数 $value 并返回它们强制执行的类型,根据与PHP严格模式相同的逻辑。

enforce_int

如果$value是整数,则返回$value作为整数。否则抛出TypeError。

enforce_float

如果$value是整数或浮点数,则返回$value作为浮点数。否则抛出TypeError。

enforce_bool

如果$value是布尔值,则返回$value作为布尔值。否则抛出TypeError。

enforce_string

如果$value是字符串,则返回$value作为字符串。否则抛出TypeError。