-7

数値の検証に役立つ PHP 関数を探しています。私が見つけたのはis_numeric()PHPis_float()です。

これは、数値と浮動小数点数に対して機能しますが、負の数は検証しません。

12345検証し たい 数字 12345.67890、、、、、 -12345.6789-12345

4

3 に答える 3

6

is_numericあなたが与えるすべての入力に対してうまくいきます(そして、しかしなどの入力も受け入れ1e10ます0xff)。

filter_varおそらく、代わりに使用する方がはるかに優れていることがわかります。

$value = filter_var($input, FILTER_VALIDATE_FLOAT);
if ($value !== false) {
    // was a valid float, do something with it
}

これはまだ受け入れます1e10が、受け入れません0xff

于 2012-10-05T09:40:59.257 に答える
5

使用できますis_numeric

$list = array("1e4",12345,12345.6789,0,- 12345.6789,- 12345,'0xa');

foreach ( $list as $value ) {
    var_dump(is_numeric($value));
}

出力

boolean true
boolean true
boolean true
boolean true
boolean true
boolean true
boolean true
          ^--  This should not be true 

* ノート *

is_numericfilter_varJonが推奨するように、代わりに 使用する必要があります。

foreach ( $list as $value ) {
    var_dump(is_float(filter_var($value, FILTER_VALIDATE_FLOAT)));
}

出力

boolean true
boolean true
boolean true
boolean true
boolean true
boolean true
boolean false  
         ^--  can you see its false 
于 2012-10-05T09:41:11.027 に答える