指定された文字列が有効な型の数ではない場合はFALSEを返し、それ以外の場合はTRUEを返す関数を作成するにはどうすればよいですか。
これは他の言語では簡単です。
intval()、isint()、およびis_numeric()は適切ではありません。理由は、次のとおりです。
is_numeric()は、整数だけでなく任意の数値に一致するため適切ではありません。また、整数ではない巨大な数値を数値として受け入れます。intval()は、「9000000000000000」などの無効なPHP整数と有効なPHP整数「0」または「0x0」または「0000」などの両方に対して0を返すため、適切ではありません。isint()は、変数がすでにint型であるかどうかのみをテストします。 、文字列やintへの変換は処理しません。
たぶん、これか何かのための人気のある図書館がありますか?
たとえば、誰かが投稿したフォームデータが有効なphp整数であるかどうかを検出できる関数を呼び出したいと思います。
これを行う関数is_php_integer($ str_test_input)を呼び出したいと思います。関数には何が入りますか?
<?php
$strInput = 'test' //function should return FALSE
$strInput = '' //function should return FALSE
$strInput = '9000000000000000' //function should return FALSE since
//is not valid int in php
$strInput = '9000' //function should return TRUE since
//valid integer in php
$strInput = '-9000' // function should return TRUE
$strInput = '0x1A' // function should return TRUE
// since 0x1A = 26, a valid integer in php
$strInput = '0' // function should return TRUE, since
// 0 is a valid integer in php
$strInput = '0x0' // function should return TRUE, since
// 0x0 = 0 which is a valid integer in php
$strInput = '0000' // function should return TRUE, since
// 0000 = 0 which is a valid integer in php
function is_php_integer($strTestInput) {
// what goes here?
// ...
// if string could be interpreted as php integer, return true
// else, return false
}
if is_php_integer($strInput) {
echo 'your integer plus one equals: '. (intval($strInput) + 1);
} else {
echo 'your input string is not a valid php integer'
}
?>
前もって感謝します!