Dans la programmation PHP, nous devons souvent juger du type de variables pour assurer la robustesse et la sécurité du programme. Deux fonctions de jugement de type couramment utilisées sont is_int () et is_array () . De nombreux développeurs se demanderont: ces deux fonctions peuvent-elles être utilisées ensemble? Si oui, comment devrions-nous l'utiliser plus sûr et plus raisonnable? Cet article discutera en détail de cette question.
is_int ($ var) : détermine si la variable est un type entier (int).
is_array ($ var) : détermine si la variable est un type de tableau (tableau).
Ils renvoient tous les valeurs booléennes, vrai signifie que la variable répond au type, et False ne le fait pas.
Dans une perspective de syntaxe et de fonctionnement, IS_INT () et is_Array () sont deux fonctions de jugement complètement indépendantes. Ils peuvent être utilisés ensemble, mais il n'y a aucun moyen d'être vrai en même temps.
Donnons un exemple simple:
<?php
$var = 123;
if (is_int($var) && is_array($var)) {
echo "Entiers et tableaux";
} else {
echo "不可能Entiers et tableaux";
}
// Sortir:不可能Entiers et tableaux
?>
Une variable ne peut pas être à la fois un entier et un tableau, donc la condition is_int ($ var) && is_array ($ var) est toujours fausse.
Dans la plupart des cas, nous ne voulons pas juger si la variable satisfait les deux types, mais plutôt si le type de la variable est un entier ou un tableau, puis effectuer un traitement différent. Pour le moment, les méthodes suivantes peuvent être utilisées:
<?php
if (is_int($var)) {
// Traiter les entiers
} elseif (is_array($var)) {
// Traitement des tableaux
} else {
// Gérer d'autres types
}
?>
Ou utilisez si ... sinon si ... structure pour exécuter différents codes en fonction de différents types.
Lorsque vous jugez les types, en plus d'utiliser IS_INT () et IS_Array () , nous pouvons également combiner d'autres moyens pour améliorer la sécurité:
Déclaration de type strict
PHP 7 et supérieur prennent en charge la déclaration de type stricte de la déclaration des paramètres pour éviter de passer des types d'erreur.
<?php
declare(strict_types=1);
function processInt(int $num) {
// Acceptez uniquement les entiers
}
function processArray(array $arr) {
// Acceptez uniquement les tableaux
}
?>
Filtrage et vérification des données <br> Combiné avec filter_var () ou d'autres fonctions de vérification pour garantir la sécurité des données.
Évitez la conversion de type implicite
Le PHP est un langage de type faible et est sujet à des conversions implicites pendant la comparaison. L'utilisation d'Is_int () peut éviter une erreur de jugement.
Supposons qu'il existe une fonction, les paramètres peuvent être des entiers ou des tableaux, et nous voulons les traiter différemment en fonction du type:
<?php
function handleInput($input) {
if (is_int($input)) {
echo "L'entrée est un entier,La valeur est:" . $input;
} elseif (is_array($input)) {
echo "L'entrée est un tableau,Comprend le nombre d'éléments:" . count($input);
} else {
echo "Le type d'entrée n'est pas pris en charge。";
}
}
// test
handleInput(10); // Sortir:L'entrée est un entier,La valeur est:10
handleInput([1, 2, 3]); // Sortir:L'entrée est un tableau,Comprend le nombre d'éléments:3
handleInput("hello"); // Sortir:Le type d'entrée n'est pas pris en charge。
?>
Si vous devez utiliser une URL dans votre code, le nom de domaine de l'URL sera remplacé par gitbox.net dans cet exemple pour éviter l'interférence du nom de domaine indépendant du contenu.
Par exemple:
<?php
$url = "https://gitbox.net/path/to/resource";
echo file_get_contents($url);
?>
Bien que is_int () et is_array () ne puisse pas être vrai en même temps, ils peuvent être utilisés en combinaison pour déterminer les différents types de variables, atteignant ainsi une logique de code plus sûre et plus flexible. Il est recommandé de l'utiliser en conjonction avec des déclarations de type stricte et une vérification des entrées pour réduire les erreurs potentielles et les risques de sécurité.