Pendant le processus de développement à l'aide de PHP, les développeurs rencontrent souvent certains avertissements et messages d'erreur. Parmi eux, un avertissement commun est "Avis: une valeur numérique non bien formée rencontrée". Cet avertissement se produit généralement lorsque vous essayez de convertir une chaîne en valeur numérique, surtout si le format numérique ne correspond pas aux attentes. Cet article analysera la cause de ce problème et fournira des solutions pour vous aider à éviter des erreurs similaires.
Cet avertissement se produit généralement dans les situations suivantes:
Exemple d'erreur:
$ num1 = "10"; $ num2 = "5"; // Erreur Exemple $ result = $ num1 + $ num2;
Étant donné que PHP est un langage de type faible, il essaie de convertir automatiquement les chaînes en valeurs numériques. Cependant, si la chaîne ne peut pas être convertie correctement en valeur numérique, un avertissement apparaîtra. Pour résoudre ce problème, nous pouvons utiliser la fonction intval () pour convertir explicitement la chaîne en un entier.
Exemple correct:
$ result = intval ($ num1) + intval ($ num2);
Exemple d'erreur:
$ datestring = "2021-01-15"; // Erreur Exemple $ TimeStamp = StrtoTime ($ dateString);
Dans cet exemple, bien que la chaîne de date soit formatée correctement, en raison de l'absence d'informations de temps spécifiques, PHP essaiera de le convertir en un horodatage de l'heure actuelle, ce qui entraîne des résultats incorrects. La solution consiste à ajouter la partie d'heure après la chaîne de date, telle que "00:00:00".
Exemple correct:
$ TimeStamp = strToTime ("$ datestring 00:00:00");
Exemple d'erreur:
$ nutfring = "123abc"; // Erreur Exemple $ Number = IntVal ($ NumberString);
Si la chaîne contient des caractères non numériques, PHP ne pourra pas le convertir en un nombre, ce qui entraîne un avertissement. Pour éviter cela, vous pouvez utiliser la fonction preg_replace () pour filtrer les caractères non numériques.
Exemple correct:
$ numéro = preg_replace ("/ [^ 0-9] /", "", $ nutationString);
La raison de l'avertissement "Avis: une valeur numérique non formée rencontrée" AVERTISSEMENT "dans PHP est généralement due aux tentatives de convertir une chaîne avec un format irrégulier en un type numérique. Ces problèmes peuvent être évités par des conversions explicites en utilisant des fonctions appropriées telles que intVal () ou preg_replace () . Lors du traitement de la conversion d'horodatage, vous assurer que la chaîne de date est terminée et comprend la pièce de temps peut également résoudre efficacement l'avertissement.