Comment déboguer les problèmes de validation d'entrée dans les fonctions PHP ?

王林
Libérer: 2024-04-18 08:36:01
original
335 Les gens l'ont consulté

Vous pouvez déboguer les problèmes de validation d'entrée dans les fonctions PHP via var_dump(), error_log(), des points d'arrêt, des exceptions, etc. pour vérifier la valeur des variables d'entrée, enregistrer les messages d'erreur, exécuter du code ligne par ligne ou lancer des exceptions.

如何调试 PHP 函数中输入验证问题?

Comment déboguer les problèmes de validation d'entrée dans les fonctions PHP ?

Cas pratique

La fonction PHP suivante vérifie si les données du champ de texte sont un nombre :

function is_numeric($input) {
  if (!is_string($input)) {
    return false;
  }

  return ctype_digit($input);
}
Copier après la connexion

Technologie de débogage

1 Utilisez var_dump()var_dump()

var_dump() 函数可以帮助你查看输入变量的值。例如:

$input = 'abc';

if (!is_numeric($input)) {
  var_dump($input);
}
Copier après la connexion

这将打印如下输出:

string(3) "abc"
Copier après la connexion

由此可见,该变量是一个字符串,而不是一个数字。

2. 使用 error_log()

error_log() 函数可以将信息记录到日志文件中。例如:

$input = 'abc';

if (!is_numeric($input)) {
  error_log("Input '$input' is not numeric");
}
Copier après la connexion

这样可以将一条错误消息记录到你的日志文件中。

3. 设置断点

对于更复杂的函数,可以使用断点来逐行执行代码并检查变量的值。大多数 IDE 都支持断点,例如:

def is_numeric(input):
    if not isinstance(input, str):
        breakpoint()
        return False

    return input.isdigit()
Copier après la connexion

到达断点时,你可以检查 input

.

var_dump() peut vous aider à visualiser la valeur de la variable d'entrée. Par exemple :

function is_numeric($input) {
  if (!is_string($input)) {
    throw new InvalidArgumentException("Input must be a string");
  }

  if (!ctype_digit($input)) {
    throw new InvalidArgumentException("Input must be numeric");
  }

  return true;
}
Copier après la connexion
Cela affichera le résultat suivant : rrreee

On peut voir que la variable est une chaîne, pas un nombre.

🎜🎜2. Utilisez la fonction error_log()🎜🎜🎜error_log() pour enregistrer des informations dans le fichier journal. Par exemple : 🎜rrreee🎜Cela enregistrera un message d'erreur dans votre fichier journal. 🎜🎜🎜3. Définir des points d'arrêt🎜🎜🎜Pour des fonctions plus complexes, vous pouvez utiliser des points d'arrêt pour parcourir le code ligne par ligne et examiner les valeurs des variables. La plupart des IDE prennent en charge les points d'arrêt, par exemple : 🎜rrreee🎜Lorsque vous atteignez un point d'arrêt, vous pouvez vérifier le type et la valeur de la variable input. 🎜🎜🎜4. Utiliser des exceptions 🎜🎜🎜Si la validation des entrées échoue, vous pouvez lancer une exception. Par exemple : 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal