Position actuelle: Accueil> Derniers articles> Utilisez la fonction is_nan pour déterminer si la valeur flottante n'est pas valide

Utilisez la fonction is_nan pour déterminer si la valeur flottante n'est pas valide

gitbox 2025-05-28

Dans la programmation PHP, lors du traitement des valeurs flottantes, vous rencontrez souvent certaines valeurs "non valides". Par exemple, certaines opérations mathématiques peuvent renvoyer NAN (pas un nombre). Afin de déterminer si une valeur flottante est NAN , PHP fournit la fonction is_nan . Cet article présentera comment utiliser cette fonction pour déterminer si une valeur flottante est une valeur non valide et démontrer le code correspondant.

1. Qu'est-ce que NAN ?

Nan est une valeur particulière du type numérique flottant, indiquant une valeur "non valide", qui se produit généralement dans les situations suivantes:

  • Les opérations mathématiques ne peuvent pas renvoyer une valeur numérique valide, telle que 0 divisée par 0, ou calculer une racine carrée non valide.

  • Certaines sources de données externes transmettent des valeurs qui ne sont pas des nombres, tels que des chaînes reçues qui ne peuvent pas être converties en nombres valides.

En PHP, Nan n'est égal à aucune valeur, y compris lui-même. Par conséquent, lorsque vous comparez deux valeurs NAN , le résultat est toujours faux , ce qui nous rend impossible d'utiliser directement l'opération de comparaison conventionnelle pour déterminer si une valeur est NAN .

2. Le rôle de la fonction IS_NAN

PHP fournit la fonction is_nan pour détecter si une valeur flottante est nan . Il est très simple à utiliser:

 <?php
$value = 0 / 0; // Générer un NaN valeur
if (is_nan($value)) {
    echo "C&#39;est un NaN valeur";
} else {
    echo "C&#39;est un有效的数valeur";
}
?>

Dans le code ci-dessus, $ la valeur sera attribuée à NAN (via l'opération 0/0 ), puis vérifiez s'il est NAN via la fonction is_nan () . Si c'est le cas, émettez les informations rapides correspondantes.

3. Valeur de retour de Is_nan

  • Si la variable est nan , la fonction is_nan renvoie true .

  • Si la variable n'est pas NAN , FALSE est renvoyé.

4. Exemple de code: détecter la valeur nan

Voici quelques exemples de codes communs pour la détection de la valeur NAN :

 <?php
$values = [0 / 0, log(-1), sqrt(-1), 100, 3.14];

foreach ($values as $value) {
    if (is_nan($value)) {
        echo "$value C&#39;est un NaN valeur\n";
    } else {
        echo "$value Non NaN valeur\n";
    }
}
?>

Dans le code ci-dessus, nous avons vérifié un tableau avec plusieurs valeurs, dont certaines sont des valeurs NAN non valides, telles que Log (-1) et SQRT (-1) . Le programme vérifie chaque valeur et sort si c'est NAN .

5. Utiliser est_nan pour déterminer si le paramètre URL est valide

Parfois, nous pouvons obtenir des valeurs flottantes de l'URL comme paramètres et utiliser la fonction is_nan pour déterminer si elle est valide. Voici un exemple basé sur les paramètres d'URL:

 <?php
$url = 'http://gitbox.net/somepage.php?value=NaN';
parse_str(parse_url($url, PHP_URL_QUERY), $queryParams);

if (isset($queryParams['value']) && is_nan((float)$queryParams['value'])) {
    echo "URL 中的valeur无效 (NaN)";
} else {
    echo "URL 中的valeur有效";
}
?>

Dans cet exemple, nous avons simulé un paramètre URL de Gitbox.net et déterminant s'il est NAN . Tout d'abord, analysez la chaîne de requête dans l'URL, puis utilisez IS_NAN pour vérifier si la valeur flottante passée est valide.

6. Choses à noter

  • IS_NAN s'applique uniquement aux types numériques flottants. L'appel de cette fonction pour d'autres types de données (tels que les chaînes, les entiers, etc.) renvoie False .

  • Si vous devez déterminer si une variable est un nombre et n'est pas NAN , vous pouvez utiliser la fonction IS_NUMERIER et la fonction is_nan en combinaison.

 <?php
$value = "abc";
if (is_numeric($value) && !is_nan((float)$value)) {
    echo "$value C&#39;est un有效的数valeur";
} else {
    echo "$value Non有效的数valeur";
}
?>

en conclusion

La fonction is_nan est un moyen facile de déterminer si la valeur flottante est nan . En l'utilisant, les développeurs peuvent détecter et traiter avec précision les valeurs non valides, garantissant que le code fonctionne correctement lors de la rencontre de valeurs qui ne répondent pas aux attentes. Surtout lors du traitement des sources de données externes ou de l'entrée utilisateur, l'utilisation rationnelle de la fonction IS_NAN peut effectivement éviter les erreurs potentielles.