给定任何数值,它可以分为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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。