Problème d'origine :
L'utilisation incontrôlée de variables dans les applications PHP peut entraîner de nombreux Erreurs « non défini » et « décalage » lors de l'exécution avec le niveau d'erreur E_NOTICE activé. La résolution de ces erreurs par une utilisation excessive des fonctions isset(), empty() et array_key_exists() peut gonfler le code et nuire à la lisibilité.
Approche suggérée :
Au lieu de en vous appuyant uniquement sur les vérifications de variables, envisagez de restructurer votre code pour en minimiser le besoin. Voici comment procéder :
Attribuez des valeurs par défaut aux variables lors de l'initialisation. Cela élimine le besoin de vérifications isset() car les variables auront toujours une valeur définie, qu'elles soient affectées ou non en externe.
Exemple :
$foo = null; // Null $bar = $baz = 'default value'; // Default string
Spécifiez les valeurs par défaut pour les arguments de fonction afin d'éviter les valeurs nulles. Cela permet aux fonctions de fonctionner avec des entrées prévisibles sans avoir besoin de vérifications isset().
Exemple :
function foo($bar = null) { ... }
Utilisez array_merge() pour combiner les valeurs par défaut avec les sources de données entrantes. Cela initialise les tableaux avec des valeurs par défaut connues, éliminant ainsi le besoin de vérifications isset().
Exemple :
$defaults = ['foo' => false, 'bar' => true, 'baz' => 'default value']; $values = array_merge($defaults, $incoming_array);
Cette fonction ne doit être utilisée que dans des cas exceptionnels où la présence ou l'absence d'une clé est cruciale. Généralement, l'initialisation de variables ou de tableaux éliminera le besoin de vérifications array_key_exists().
Exemple :
$array = ['key' => null]; if (array_key_exists('key', $array)) { ... }
Utilisez les vérifications isset() et empty() avec parcimonie dans les modèles. Si une variable n'est pas définie ou vide, elle doit être remplacée par une valeur par défaut ou le message de gestion des erreurs approprié.
Exemple :
<?php if (isset($foo)): ?> <!-- Output content --> <?php else: ?> <p>Foo is not set.</p> <?php endif; ?>
En suivant ces Conformément aux directives, vous pouvez réduire considérablement le recours aux vérifications isset(), empty() et array_key_exists() tout en conservant la compatibilité E_NOTICE. Cette approche conduit à un code plus propre et plus lisible et améliore la fiabilité et la maintenabilité de votre code.
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!