Question Si d'autre incorporation à l'intérieur de HTML


Quelle est la bonne façon d'incorporer sinon et sinon les conditions dans le HTML?


55
2018-01-19 04:42


origine


Réponses:


Voir ce et son alterner, qui a tendance à être plus lisible si elle est intégrée à des blocs HTML.


13
2018-01-19 04:48



Je recommande la syntaxe suivante pour la lisibilité.

<? if ($condition): ?>
  <p>Content</p>
<? elseif ($other_condition): ?>
  <p>Other Content</p>
<? else: ?>
  <p>Default Content</p>
<? endif; ?>

Notez, en omettant php sur les balises ouvertes nécessite que short_open_tags est activé dans votre configuration, qui est le défaut. La syntaxe conditionnelle sans accolade appropriée est toujours activée et peut être utilisée indépendamment de cette directive.


131
2018-01-19 04:45



<?php if ($foo) { ?>
    <div class="mydiv">Condition is true</div>
<?php } else { ?>
    <div class="myotherdiv">Condition is false</div>
<?php } ?>

31
2018-01-19 04:46



EDIT: Je cherche à faire une note sur la réponse de @ Patrick, mais apparemment StackOverflow pense que ma réputation n'est pas suffisante. Je pense que c'est une note importante, car les personnes qui débarquent ici le font pour apprendre. Si cela est supprimé parce qu'il ne répond pas à la question, alors soit. Si Patrick corrige sa réponse, alors supprimer cette opération ne fait aucun mal.

Je vois que c'est une vieille question / réponse, mais elle se classe fortement dans la recherche Bing, donc je suis obligé d'ajouter ce commentaire pour les âmes confuses de PHP qui arrivent ici.

Dans la réponse de @Patrick McMahon, le deuxième commentaire ici ( $ first_condition est faux et $ second_condition est vrai


8
2017-07-28 16:04



Vous trouverez plusieurs méthodes différentes que les gens utilisent et ils ont chacun leur propre place.

<?php if($first_condition): ?>
  /*$first_condition is true*/
<?php elseif ($second_condition): ?>
  /*$first_condition is false and $second_condition is true*/
<?php else: ?>
  /*$first_condition and $second_condition are false*/
<?php endif; ?>

Si dans votre attribut php.ini short_open_tag = true (cela se trouve normalement sur line 141 du fichier php.ini par défaut), vous pouvez remplacer votre balise php open de <?php à <?. Ceci n'est pas conseillé comme la plupart des environnements de serveurs live sont désactivés (y compris de nombreux CMS comme Drupal, WordPress et Joomla). J'ai déjà testé des balises ouvertes à main levée dans Drupal et confirmé que cela briserait votre site, donc restez fidèle à <?php. short_open_tag n'est pas activé par défaut dans toutes les configurations de serveur et ne doit pas être considéré comme tel lors du développement pour des configurations de serveur inconnues. De nombreuses sociétés d’hébergement ont short_open_tag éteindre.

Une recherche rapide de short_open_tag dans stackExchange affiche 830 résultats. https://stackoverflow.com/search?q=short_open_tag C'est beaucoup de gens qui ont des problèmes avec quelque chose qu'ils ne devraient pas jouer avec.

avec certains environnements de serveurs et applications, les balises php ouvertes à courte portée feront toujours planter votre code, même avec short_open_tag mis à true.

short_open_tag sera supprimé en PHP6, donc n'utilisez pas de balises courtes.

toutes les futures versions de PHP vont tomber short_open_tag 

"Il est recommandé depuis plusieurs années de ne pas utiliser le court   tag "raccourci" et utiliser la balise complète   combinaison. Avec l'utilisation répandue de XML et l'utilisation de ces balises par   d'autres langues, le serveur peut devenir facilement confus et finir   analyser le mauvais code dans le mauvais contexte. Mais parce que ce court   couper est une caractéristique depuis si longtemps, il est toujours   pris en charge pour la compatibilité ascendante, mais nous vous recommandons de ne pas utiliser   eux. "- Jelmer Sep 25 '12 à 9:00    php: "short_open_tag = On" ne fonctionne pas

et

Normalement, vous écrivez PHP comme ceci:. Toutefois, si    allow_short_tags directive est activée, vous pouvez utiliser:. Aussi trier les balises fournit une syntaxe supplémentaire: qui   est égal à .

Les étiquettes courtes peuvent sembler cool mais elles ne le sont pas. Ils ne causent que plus   problèmes. Oh ... et IIRC ils seront supprimés de PHP6.   Crozin a répondu le 24 août 10 à 22h12    problème php short_open_tag

et

Pour répondre à la question de savoir pourquoi, je citerais le guide de certification PHP 5 de Zend:   "Les balises courtes étaient, pour un temps, la norme dans le monde PHP, mais   ils ont l'inconvénient majeur d'être en conflit avec les en-têtes XML et,   par conséquent, sont quelque peu tombés sur le bord du chemin. "- Fluffy Apr 13 '11   à 14h40    Les balises PHP courtes sont-elles acceptables?

Vous pouvez également voir des personnes utiliser l'exemple suivant:

<?php if($first_condition){ ?>
  /*$first_condition is true*/
<?php }else if ($second_condition){ ?>
  /*$first_condition is false and $second_condition is true*/
<?php }else{ ?>
  /*$first_condition and $second_condition are false*/
<?php } ?>

Cela fonctionnera mais il est très mal vu car il n'est pas considéré comme lisible et n'est pas ce pour quoi vous utiliseriez ce format. Si vous aviez un fichier PHP où vous aviez un bloc de code PHP qui ne contenait pas de balises intégrées, vous utiliseriez alors le format de parenthèse.

L'exemple suivant montre quand utiliser la méthode entre parenthèses

<?php
if($first_condition){
   /*$first_condition is true*/
}else if ($second_condition){
   /*$first_condition is false and $second_condition is true*/
}else{
   /*$first_condition and $second_condition are false*/
}
?>

Si vous faites ce code pour vous-même, vous pouvez faire ce que vous voulez, mais si vous travaillez avec une équipe au travail, il est conseillé d'utiliser le bon format pour les circonstances appropriées. Si vous utilisez des crochets dans les scripts html / php intégrés, cela est un bon moyen de se faire virer, car personne ne voudra nettoyer votre code après vous. Les responsables informatiques se soucient de la lisibilité du code et du degré de lisibilité des professeurs.

METTRE À JOUR

sur la base des commentaires de duskwuff, on ne sait toujours pas si la sténographie est déconseillée (par les normes PHP) ou non. Je mettrai à jour cette réponse au fur et à mesure que j'obtiens plus d'informations. Mais sur la base de nombreux documents trouvés sur le web à propos de la sténographie étant mauvais pour la portabilité. Personnellement, je ne l'utiliserais pas, car cela ne donne aucun avantage et vous devez vous fier à un paramètre qui n'est pas activé pour chaque hébergeur.


0
2018-02-26 18:46



 <?php if (date("H") < "12" && date("H")>"6") { ?>
   src="<?php bloginfo('template_url'); ?>/images/img/morning.gif" 
 <?php } elseif (date("H") > "12" && date("H")<"17") { ?>
 src="<?php bloginfo('template_url'); ?>/images/img/noon.gif" 
  <?php } elseif (date("H") > "17" && date("H")<"21") { ?>
   src="<?php bloginfo('template_url'); ?>/images/img/evening.gif" 
  <?php } elseif (date("H") > "21" && date("H")<"24") { ?>
  src="<?php bloginfo('template_url'); ?>/images/img/night.gif" 
  <?php }else { ?>
  src="<?php bloginfo('template_url'); ?>/images/img/mid_night.gif" 
  <?php } ?>

0
2018-04-23 16:41