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,我們會讓它失敗,因為它不是一個整數。浮點數會失去精度,所以運算子可能會意外地讓一個浮點數通過。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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
檢視更多 >