0

这是我的第一个问题,所以大家好..

有可能满足这个条件吗?其中 $a 和 $b 是一些已定义的变量

if(!is_numeric($a * $b.'')) { ... }

编辑:第二个条件

$a * $b can't be INF
4

2 回答 2

5

$a您可以使用和的特定值来满足条件$b。例如$a = $b = 1e200, 或$a = 1e400, $b = 0

$a如果和的乘积$b溢出到无穷大或者是非数字,则与空字符串的连接将产生字符串INFor NAN

php > var_export(1e200*1e200);
INF
php > var_export(is_numeric(1e200*1e200));
true
php > var_export(is_numeric(1e200*1e200.''));
false

php > var_export(1e400*0);
NAN
php > var_export(is_numeric(1e400*0));
true
php > var_export(is_numeric(1e400*0 .''));
false
于 2012-05-16T10:04:17.217 回答
4

使用 32 位 PHP 测试

$a = 9.9E300;
$b = 9.9E300;

if(!is_numeric($a * $b.'')) {
    echo 'non-numeric';
} else {
    echo 'numeric';
}
于 2012-05-16T10:03:42.033 回答