給定任何數值,它可以分為3個不同的類別,例如有限數,無限數和非數字或通常稱為NaN。在開發高度依賴於用戶輸入的項目時,在許多情況下,用戶會提供不適當的輸入,而函數需要有限的數字輸入,從而產生未處理的情況或意外的結果。
因此,檢查給定輸入值是否有限是安全的選擇。
is_finite()函數
用法:
bool is_finite ($value)
參數:該函數采用單個參數,該參數是要檢查的浮點數。
返回類型:如果給定值是有限的,則此函數返回TRUE,否則返回FALSE。
例子:
Input: $value = M_PI_4; Output:TRUE Input:$value = log(0); Output:FALSE
is_infinite()函數
用法:
bool is_infinite ($value)
參數:該函數采用單個參數,該參數是要檢查的浮點數。
返回類型:如果給定值是無限的,則此函數返回TRUE,否則返回FALSE。
例子:
Input: $value = M_PI_4; Output:FALSE Input:$value = log(0); Output:TRUE
is_nan()函數
用法:
bool is_nan ($value)
參數:該函數采用單個參數,該參數是要檢查的浮點數。
返回類型:如果給定值不是數字,則此函數返回TRUE,否則返回FALSE。
例子:
Input: $value = M_PI_4; Output:FALSE Input:$value = acos(1.1); // cos function can not be greater than 1 Output:TRUE
以下示例程序旨在說明PHP中is_finite(),is_infinite(),is_nan()函數的工作方式:
<?php
// PHP code to illustrate the working of
// is_finite(), is_infinte() and is_nan() Functions
// Finite Value:PI
$val1 = M_PI;
// In-built value of INFINITY
$val2 = INF;
// Produces NaN as COS value can reside
// between -1 to +1 both inclusive
$val3 = acos(-1.01);
echo var_dump(is_finite($val1), is_finite($val2),
is_finite($val3))."\n";
echo var_dump(is_infinite($val1), is_infinite($val2),
is_infinite($val3))."\n";
echo var_dump(is_nan($val1), is_nan($val2),
is_nan($val3))."\n";
?>
輸出:
bool(true) bool(false) bool(false) bool(false) bool(true) bool(false) bool(false) bool(false) bool(true)
注意事項:
- 此函數還可以檢查表達式是否產生有限結果,但是如果導致NaN的表達式本身顯示PHP並顯示錯誤並返回默認FALSE(例如,檢查被零除的表達式)。
- is_finite()函數在許多項目中使用,以使其更加安全,高效。
- 這些方法產生高度準確的結果,但時間效率不高。
相關用法
注:本文由純淨天空篩選整理自PronabM大神的英文原創作品 PHP | is_finite(), is_infinite(), is_nan() Functions。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。