J'ai constaté qu'il y avait beaucoup de déclarations si-d'autre, notamment imbriquées si d'autres déclarations, ces déclarations rendent mon code moins lisible. Comment réduire le nombre de déclarations si sinon dans PHP? P>
Mes conseils sont les suivants: 1.Utilisez une instruction de commutation lorsqu'il convient; 2.Utilisez la déclaration de sortie () lorsque cela est réalisable; 3. Utilisez une déclaration ternaire quand elle est réalisable; p>
Y a-t-il d'autres conseils qui peuvent réduire si d'autres déclarations, notamment imbriquées des déclarations si elles? p>
6 Réponses :
refacteur votre code en unités de travail plus petites. Trop de logique conditionnelle est une odeur de code et indique généralement que votre fonction doit être refactable. P>
Utilisez l'opérateur ternaire, refacteur de votre code, écrivez une fonction ou une classe qui effectue toutes les instructions nécessaires. P>
Le polymorphisme pourrait également se débarrasser de quelques aussi, ce que bien que ce soit plus difficile de mettre en œuvre pour réduire si / sinon dans PHP car il n'est pas de type Safe ... P>
Essayez d'utiliser «retour précoce» lorsque cela est possible afin de réduire la profondeur de nidification. Essayez d'utiliser l'évaluation de l'expression booléenne.
Exemple: p> Vous pouvez réécrire ceci comme: p>
+1 Ceci est très important car il peut réduire votre taille de fichier par plusieurs Ko!
+1 s'applique également pour continuer, casser, lancer. Vous pouvez souvent garder la complexité cyclique bas de cette façon et ainsi rendre le code plus lisible.
Aussi, j'utiliserai personnellement juste retour userisisloggedin () && is_array ($ param) && $ param ['comptez']> 0; code> ici. C'est court et concis.
Il existe une méthode académique officielle pour refacteur et simplifier beaucoup de conditions Il faut dans plusieurs conditions de test et tente d'aider à créer des déclarations simplifiées Vous pouvez en apprendre davantage à partir de wiki ici . P> si code> conditions, appelées karnaugh mappage em>. p>.
si code> couvrant tous les cas requis. P>
@ Desimplelife- Pouvez-vous ajouter plus d'extrait de code dans votre réponse. Un peu de temps de lecture sur Wiki est frustrant.
La carte de Karnaugh n'est pas vraiment du code. C'est plus un moyen de regarder les conditions et de les simplifier en utilisant une table.
Je travaille sur beaucoup de code qui est plein d'une logique commerciale évolutive et doit être modifiée tous les deux jours. Deux conseils qui me sont certainement aidés à suivre les modifications sont les suivants: Évitez toutes les déclarations et revenir / sortie dès que possible. Ne jamais entrer dans une nichonnage profonde -> créer des souscriptions / fonctions.
Remplacement de toutes les instructions de tout le reste avec annulation Si les instructions facilitent votre code de lire le haut en bas (la proximité de la mentalisation et du bloc de code): P> Deuxièmement, retour / sortie dès que possible. Mon opinion bien sûr, mais je ne vois pas le point d'exécution dans des conditions / tests supplémentaires lorsque vous avez déjà déterminé le résultat du sous-programme, en particulier lorsque vous souhaitez lire le code haut en bas. Supprimer toute ambiguïté rend les choses plus simples. P> Pour conclure, j'aime éviter d'utiliser sinon sur de longues listes de BL. Retour dès que vous connaissez le résultat. Si le niveau de nidification est supérieur à 2, créez des sous-routines / fonctions. P> p>