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
檢視更多 >