Position actuelle: Accueil> Derniers articles> Comment utiliser IS_NUMERIC en PHP avec la fonction filter_var pour gérer la vérification numérique?

Comment utiliser IS_NUMERIC en PHP avec la fonction filter_var pour gérer la vérification numérique?

gitbox 2025-06-24
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Voici quelques exemples de code non liés,Article de simulation PARTIE DE COMMENCE</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">"Ce code n&#39;a rien à voir avec le contenu de l&#39;article,Par exemple seulement。"</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">/**
 * Comment PHP Utilisé dans is_numeric Coopérer filter_var Traitement de la fonction Vérification numérique?
 * 
 * exister PHP En cours de développement,La vérification numérique des données saisies par l&#39;utilisateur est souvent requise,Assurer la légalité des données。
 * dans,is_numeric et filter_var Ce sont deux fonctions couramment utilisées,Chacun a ses propres avantages et inconvénients。
 * Cet article présentera comment combiner ces deux fonctions pour une vérification numérique efficace.。
 */</span>

<span class="hljs-comment">/**
 * 1. is_numeric Fonction Introduction
 * is_numeric Utilisé pour détecter si une variable est une chaîne numérique ou numérique(Y compris les entiers、Numéro de point flottant、Méthode de comptage scientifique)。
 * Exemple:
 */</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>' C&#39;est un numéro\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>' 不C&#39;est un numéro\n";
    }
}

<span class="hljs-comment">/**
 * 2. filter_var Fonction Introduction
 * filter_var C&#39;est une fonction filtrante puissante,可用于验证et过滤数据。
 * dans,FILTER_VALIDATE_INT et FILTER_VALIDATE_FLOAT 用于Vérifiez les entiersetNuméro de point flottant。
 * Exemple:
 */</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. Combiné is_numeric et filter_var Utiliser des scénarios
 * - is_numeric 能够检测是否C&#39;est un numéro或数字字符串,Large plage。
 * - filter_var Vérification plus stricte,能区分整数etNuméro de point flottant。
 * 
 * 实际En cours de développement,Peut être utilisé en premier is_numeric Porter un jugement préliminaire,Utiliser à nouveau filter_var Effectuer une vérification précise。
 */</span>

<span class="hljs-comment">/**
 * 4. 实际Exemple代码
 */</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">// Vérifiez les entiers</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">// 验证Numéro de point flottant</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">// 只要C&#39;est un numéro即可</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">// Cas de test</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">"entrer '<span class="hljs-subst">{$input}</span></span></span><span>' Vérifiez comme un entier: " . (</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">'passer'</span></span><span> : </span><span><span class="hljs-string">'不passer'</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">"entrer '<span class="hljs-subst">{$input}</span></span></span><span>' 验证为Numéro de point flottant: " . (</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">'passer'</span></span><span> : </span><span><span class="hljs-string">'不passer'</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">"entrer '<span class="hljs-subst">{$input}</span></span></span><span>' Vérifiez comme n&#39;importe quel nombre: " . (</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">'passer'</span></span><span> : </span><span><span class="hljs-string">'不passer'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

<span class="hljs-comment">/**
 * 5. Résumer
 * - utiliser is_numeric Vous pouvez déterminer rapidement si une chaîne est au format numérique。
 * - filter_var Fournit une vérification de type numérique à grains plus fins。
 * - 两者Combinéutiliser,能提高数字验证的准确性et灵活性。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>