randomcompat_intval

函数
randomcompat_intval ( $number, $fail_open = false )
参数
  • (int|float) $number The number we want to convert to an int
    Required:
  • (bool) $fail_open Set to true to not throw an exception
    Required:
    Default: false
返回值
  • (float|int)
定义位置
相关方法
randomcompat_strlenrandomcompat_substrrandom_intallow_subdomain_installrandom_bytes
引入
-
弃用
-

randomcompat_intval是一个兼容函数,被WordPress用来确保不同版本的PHP之间的行为一致。它返回一个给定变量的整数值,不管它是否已经是一个整数或代表一个整数的字符串。

如果可以的话,安全地转换为一个整数。

如果你传给它一个范围在(~PHP_INT_MAX, PHP_INT_MAX)(不包括在内)的浮点数,它将理智地把它转为一个int。如果它等于~PHP_INT_MAX或PHP_INT_MAX,我们会让它失败,因为它不是一个整数。浮点数会失去精度,所以运算符可能会意外地让一个浮点数通过。

function RandomCompat_intval($number, $fail_open = false)
    {
        if (is_int($number) || is_float($number)) {
            $number += 0;
        } elseif (is_numeric($number)) {
            /** @psalm-suppress InvalidOperand */
            $number += 0;
        }
        /** @var int|float $number */

        if (
            is_float($number)
                &&
            $number > ~PHP_INT_MAX
                &&
            $number < PHP_INT_MAX
        ) {
            $number = (int) $number;
        }

        if (is_int($number)) {
            return (int) $number;
        } elseif (!$fail_open) {
            throw new TypeError(
                'Expected an integer.'
            );
        }
        return $number;
    }
}

常见问题

FAQs
查看更多 >