PHPプログラミングでは、文字列が数字であるかどうかを判断する必要があることがよくあります。この要件は、データ検証、ユーザー入力処理、フォーム検証などのシナリオで特に一般的です。PHPは非常に実用的な組み込み関数is_numericを提供し、変数が数値文字列であるかどうかを迅速に判断できます。
この記事では、 is_numeric関数といくつかの実用的なアプリケーションの例を使用する方法を詳細に紹介して、この機能をよりよく理解して適用するのに役立ちます。
IS_Numericは、変数が数値文字列であるか数値文字列であるかを検出するPHPの関数です。ブール値をtrueまたはfalseに返します。
変数が整数、フローティングポイント番号、または数字(小数点のある文字列、正の兆候、科学表記を含む)で構成される文字列である場合、関数はtrueを返します。
それ以外の場合、 falseが返されます。
関数定義:
bool is_numeric ( mixed $var )
パラメーター$ varは、検出する変数です。
以下は、 iS_Numericの使用を示すためのいくつかのコード例です。
<?php
$values = [
"123",
"12.3",
"-123",
"1e10",
"abc",
"123abc",
"",
" 123 ",
null,
123,
12.3
];
foreach ($values as $value) {
if (is_numeric($value)) {
echo "'$value' 数字または一連の数字です\n";
} else {
echo "'$value' 数値文字列ではありません\n";
}
}
?>
出力結果:
'123' 数字または一連の数字です
'12.3' 数字または一連の数字です
'-123' 数字または一連の数字です
'1e10' 数字または一連の数字です
'abc' 数値文字列ではありません
'123abc' 数値文字列ではありません
'' 数値文字列ではありません
' 123 ' 数値文字列ではありません
'' 数値文字列ではありません
'123' 数字または一連の数字です
'12.3' 数字または一連の数字です
結果からわかるように、 IS_Numericは整数、浮動小数点数、負の数値、および科学的表記に表される数値文字列を認識できますが、スペースや文字を含む文字列をサポートしません。
<?php
$user_input = "45.67";
if (is_numeric($user_input)) {
echo "入力されたのは法定番号です";
} else {
echo "入力は数ではありません,再入力してください";
}
?>
パラメーターがURLから取得されると仮定すると、パラメーターが違法注射を防ぐための数字であるかどうかを判断する必要があります。
<?php
$id = $_GET['id'] ?? '';
if (is_numeric($id)) {
echo "効果的ID: " . intval($id);
} else {
echo "無効IDパラメーター";
}
?>
番号文字列はiS_Numericによって決定されますが、整数が必要な場合は、 intvalまたは型変換でさらに処理できることに注意してください。
IS_NUMERICは、 -3.14や+1E3などの数字として、正と負の兆候、小数点、および科学表記を持つ文字列を認識します。どちらもtrueです。
空の文字列、純粋なスペース文字列、および英数字の混合文字列はすべて偽りになります。
変数が純粋な整数であるかどうかを判断する必要がある場合は、 CTYPE_DIGITを使用できますが、署名されていない数値文字列のみをサポートします。
フローティングポイント番号または整数を判断する必要がある場合は、 filter_varと正規表現を組み合わせて、より厳格な検出を実現できます。
IS_Numericは、変数が数値文字列であるか数値文字列であるかを判断するためのPHPのシンプルで効率的な機能です。ユーザー入力または可変タイプを迅速に検証するのに適しており、多くのシナリオで非常に実用的です。その動作と境界の状況を理解することは、より堅牢なコードを書くのに役立ちます。
デジタル検証を行っている場合は、最初にis_numericを使用し、 intvalやfloatvalなどの他の機能を使用してデータをさらに処理することをお勧めします。