web-dev-qa-db-fra.com

PHP: Meilleur moyen d'imprimer HTML dans des conditions if-else

Veuillez vous reporter aux deux formes suivantes du même code

D'abord:

<?php if(some_condition){
?>
    <li><a target="_blank" href="example.com/channel1/"  class="xyz">If content</a></li>
<?php
}else{
?>
    <li><a target="_blank" href="example.com/channel2/"  class="xyz">Else Content</a></li>

<?php?>
}?>

Seconde :

<?php 
    if(some_condition){
       echo '<li><a target="_blank" href="example.com/channel1/"  class="xyz">If content</a></li>';
    }
    else{
        echo '<li><a target="_blank" href="example.com/channel2/"  class="xyz">Else Content</a></li>';
    }
 ?>

Ma question est la suivante: laquelle des éléments suivants est une meilleure option. Je sais que le second est plus lisible. Mais s'il y a tellement de conditions sur la même page, c'est une meilleure performance-sage (je crois, il n'y aura qu'une différence de performance négligeable entre les deux).

J'aimerais connaître vos points de vue/points concernant la performance des normes et tout ce que vous pensez que je devrais savoir, sur les deux formes différentes.

(Et qui devraient être préférés sur l'autre, quand il n'y a qu'un seul bloc IF-sinon, et plusieurs blocs if-sinon bloque)

Merci

3
kadamb

Je dirais que le premier exemple est le meilleur des deux maux comme il est plus maintenu. Le HTML est écrit tel quel et non codé comme littéral à chaîne.

Utilisation de modèles ou d'une autre façon de garder la logique commerciale et la présentation HTML distinct entraîne généralement un code plus maintenu.

2
Mazaryk

Comme toujours, la réponse courte et probablement la plus correcte: cela dépend.

Étendre:

Pour les deux extraits de ce court-circuit comme indiqué dans la question, il est purement du goût. Il n'y a pas de raison technique forte pour l'un sur l'autre. Dans un contexte plus important, la question est "sont-elles" les modèles plutôt html avec une petite logique entre ou sont ces pièces de code avec beaucoup de logique et un peu de HTML? "

Bien sûr, si c'est surtout logique, une bonne idée est de regarder dans la bibliothèque de modèles comme Twig ou d'autres personnes et séparez la logique de la sortie dans un plus grand degré, WHCIH permet de tester et de modifier les formats de sortie plus facilement.

2
johannes