現在の位置: ホーム> 最新記事一覧> filter_var関数を使用してphpでis_numericを使用してデジタル検証を処理する方法は?

filter_var関数を使用してphpでis_numericを使用してデジタル検証を処理する方法は?

gitbox 2025-06-24
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 以下は、いくつかの無関係なコードの例です,シミュレーション記事開始部品</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">exampleFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"このコードは、記事の内容とは何の関係もありません,たとえば、のみ。"</span></span><span>;
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">exampleFunction</span></span><span>();

</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * 方法 PHP で使用されます is_numeric 協力します filter_var 機能処理デジタル検証?
 * 
 * 存在する PHP 開発中,ユーザーが入力したデータのデジタル検証ではしばしば必要です,データの合法性を確保します。
 * で,is_numeric そして filter_var これらは、一般的に使用される2つの関数です,それぞれには独自の利点と短所があります。
 * この記事では、効果的なデジタル検証のためにこれら2つの機能を組み合わせる方法を紹介します。。
 */</span>

<span class="hljs-comment">/**
 * 1. is_numeric 関数の紹介
 * is_numeric 変数が数値文字列であるか数値文字列であるかを検出するために使用されます(整数を含む、フローティングポイント番号、科学的カウント方法)。
 * 例:
 */</span>
</span><span><span class="hljs-variable">$values</span></span><span> = [</span><span><span class="hljs-string">'123'</span></span><span>, </span><span><span class="hljs-string">'12.3'</span></span><span>, </span><span><span class="hljs-string">'1e10'</span></span><span>, </span><span><span class="hljs-string">'abc'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>];

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$values</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$val</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_numeric</span></span><span>(</span><span><span class="hljs-variable">$val</span></span><span>)) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"'<span class="hljs-subst">{$val}</span></span></span><span>' それは数字です\n";
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"'<span class="hljs-subst">{$val}</span></span></span><span>' 不それは数字です\n";
    }
}

<span class="hljs-comment">/**
 * 2. filter_var 関数の紹介
 * filter_var これは強力なフィルター機能です,可用于验证そして过滤数据。
 * で,FILTER_VALIDATE_INT そして FILTER_VALIDATE_FLOAT 用于整数を確認しますそしてフローティングポイント番号。
 * 例:
 */</span>
</span><span><span class="hljs-variable">$intVal</span></span><span> = </span><span><span class="hljs-string">'123'</span></span><span>;
</span><span><span class="hljs-variable">$floatVal</span></span><span> = </span><span><span class="hljs-string">'12.3'</span></span><span>;
</span><span><span class="hljs-variable">$invalidVal</span></span><span> = </span><span><span class="hljs-string">'12abc'</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$intVal</span></span><span>, FILTER_VALIDATE_INT));    </span><span><span class="hljs-comment">// int(123)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$floatVal</span></span><span>, FILTER_VALIDATE_FLOAT)); </span><span><span class="hljs-comment">// float(12.3)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$invalidVal</span></span><span>, FILTER_VALIDATE_INT)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>

<span class="hljs-comment">/**
 * 3. 組み合わせた is_numeric そして filter_var シナリオを使用します
 * - is_numeric 能够检测是否それは数字です或数字字符串,幅広い範囲。
 * - filter_var より厳しい検証,能区分整数そしてフローティングポイント番号。
 * 
 * 实际開発中,最初に使用できます is_numeric 予備的な判断を下す,もう一度使用してください filter_var 正確な検証を実行します。
 */</span>

<span class="hljs-comment">/**
 * 4. 实际例代码
 */</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">validateNumber</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$input</span></span></span><span>, </span><span><span class="hljs-variable">$type</span></span><span> = </span><span><span class="hljs-string">'any'</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_numeric</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>)) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
    }

    </span><span><span class="hljs-keyword">switch</span></span><span> (</span><span><span class="hljs-variable">$type</span></span><span>) {
        </span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'int'</span></span><span>:
            </span><span><span class="hljs-comment">// 整数を確認します</span></span><span>
            </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, FILTER_VALIDATE_INT) !== </span><span><span class="hljs-literal">false</span></span><span>;
        </span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'float'</span></span><span>:
            </span><span><span class="hljs-comment">// 验证フローティングポイント番号</span></span><span>
            </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, FILTER_VALIDATE_FLOAT) !== </span><span><span class="hljs-literal">false</span></span><span>;
        </span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'any'</span></span><span>:
        </span><span><span class="hljs-keyword">default</span></span><span>:
            </span><span><span class="hljs-comment">// 只要それは数字です即可</span></span><span>
            </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// テストケース</span></span><span>
</span><span><span class="hljs-variable">$testInputs</span></span><span> = [</span><span><span class="hljs-string">'123'</span></span><span>, </span><span><span class="hljs-string">'12.3'</span></span><span>, </span><span><span class="hljs-string">'1e3'</span></span><span>, </span><span><span class="hljs-string">'abc'</span></span><span>, </span><span><span class="hljs-string">'0'</span></span><span>, </span><span><span class="hljs-string">'-45'</span></span><span>, </span><span><span class="hljs-string">'3.14.15'</span></span><span>];

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$testInputs</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$input</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"入力 '<span class="hljs-subst">{$input}</span></span></span><span>' 整数として確認します: " . (</span><span><span class="hljs-title function_ invoke__">validateNumber</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-string">'int'</span></span><span>) ? </span><span><span class="hljs-string">'合格'</span></span><span> : </span><span><span class="hljs-string">'不合格'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"入力 '<span class="hljs-subst">{$input}</span></span></span><span>' 验证为フローティングポイント番号: " . (</span><span><span class="hljs-title function_ invoke__">validateNumber</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-string">'float'</span></span><span>) ? </span><span><span class="hljs-string">'合格'</span></span><span> : </span><span><span class="hljs-string">'不合格'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"入力 '<span class="hljs-subst">{$input}</span></span></span><span>' 任意の数字として確認します: " . (</span><span><span class="hljs-title function_ invoke__">validateNumber</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-string">'any'</span></span><span>) ? </span><span><span class="hljs-string">'合格'</span></span><span> : </span><span><span class="hljs-string">'不合格'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

<span class="hljs-comment">/**
 * 5. 要約します
 * - 使用 is_numeric 文字列が数値形式であるかどうかをすばやく判断できます。
 * - filter_var 細かい数値型検証を提供します。
 * - 两者組み合わせた使用,能提高数字验证的准确性そして灵活性。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>