私の理解では...IS_NUMERIC()対is_float()対is_int()
is_numeric($input) === true
、その後のいずれか
is_float($input) === true
OR
is_int($input) === true
OR
場合$input === 0
または
$input
は数字の文字列です(引用符で囲まれていない場合は最初の3文字のいずれかを満たします)。
これは正確ですか?他の違いはありますか?
私の理解では...IS_NUMERIC()対is_float()対is_int()
is_numeric($input) === true
、その後のいずれか
is_float($input) === true
OR
is_int($input) === true
OR
場合$input === 0
または
$input
は数字の文字列です(引用符で囲まれていない場合は最初の3文字のいずれかを満たします)。
これは正確ですか?他の違いはありますか?
を参照してくださいPHPのマニュアルのほとんどを含む文字列。許可されているすべてについて語りますが、それはis_float
とis_int
以上です。
それはis_int
のみの文字列表現が許可されていないという意味、整数型をしているものに動作することに注意することも重要です。これは、フォーム入力が整数であることを確認する際によくある問題です。フィルターFILTER_VALIDATE_INT
を使用して、filter_var
またはフィルターファミリーのものを使用する必要があります。浮動小数点数の場合は、FILTER_VALIDATE_FLOAT
を使用します。
、あなたが整数かどうかを確認しようとしている理由は、その後PHP 7で、あなたがこれを行うことができ、int型であるとしてパラメータを検証する場合:PHP 7は、2つを持っている
function foo(int $i) {
// $i is guaranteed to be an int (is_int) will be true
}
intに変換するための異なるモード。 this answerはもう少し説明します。
フォーム要素の内容を検証する場合、これはおそらく必要ではないことに注意してください。そのためにはfilter_var
ソリューションを使用してください。
Thx - 'filter_var'についての良いヒント – ryanve
あなたは関数を必要としません。それを整数にキャストすることができます:' $ n =(int)$ i' –
docsを参照してください。数値は指定できます
この表の内容を読んでください:http://php.net/manual/en/language.types.phpおそらくこれはあなたが探しているものです。 –
私は浮きが何であるかについて最も混乱していたと思います。私は浮動小数点であるものも数字であるが、それとは反対ではないことをとる。 – ryanve