Eh bien, la question est auto-explicative.
en php Quand puis-je utiliser la notation Exemple: P> if / endif code> au lieu de la norme si (quelque chose) {} code> notation? P> <?php if($a == 5){ ?>
A is equal to 5
<?php } ?>
6 Réponses :
Réponse courte:
Si vous recherchez vraiment un cas où vous pouvez utiliser si / endif, alors c'est à l'aide de PHP. En tant que langage de modèle. P> Certaines personnes aiment quelque chose comme ceci: p> meilleur que p> et IMHO c'est parce que chaque ligne "parle" et qui peut être utile lorsqu'il y a beaucoup de HTML entre les tags php. P> P> si ($ quelque chose) {} code> et à peu près if / endif code>. Il est standard depuis PHP 4.0.0 et tandis que l'ancienne syntaxe ne disparaît pas, ceci est celui que tout le monde s'attend. P>
Je ne pense pas que cela soit vrai; Ce n'est pas que si {} code> est une norme, en soi, il est juste que c'est préféré pour la lisibilité à certains endroits. Par exemple, dans un modèle: Php if ($ var) {?> Yay! Php}?> Code> est tout simplement laids, comparé à PHP si ($ var ):?> YAY! PHP endif; ?> code>. Notez que le Documentation officielle ne notent aucune dépréciation ou remarque même.
@Jimmy j'ai essayé de dire que la vieille syntaxe ne s'en va pas "et tandis que la vieille syntaxe ne s'en va". N'est-ce pas clair? Désolé! Et je suis personnellement d'accord avec vous sur le choix de la syntaxe dans les modèles, mais j'ai entendu parler d'autres personnes qu'ils n'aiment pas cela, donc je ne voulais pas parler en absolus ici
D'accord 100%. J'ajouterai également que si vous indemne votre code correctement, vous ne devez jamais avoir de problème de dire où le bloc commence et se termine. Qui annule donc l'une des principales raisons d'utiliser endif code> ...
Les deux méthodes sont acceptables. Certaines personnes maintiennent que la syntaxe alternative (endif) est plus lisible dans les modèles. IMHO, avec une erreur de coloration / de mise en évidence moderne de syntaxe, qui ne tient plus vraie. Il suffit de choisir un style et de coller avec elle. P>
Vieille question, je sais. Mais je ne peux pas m'empêcher mais d'accord ici: Avec la coloration de la syntaxe et même les lignes en surbrillance entre les accolades bouclées, des accolades bouclées sont bien supérieures. Je travaille beaucoup de travail avec Woocommerce, et je retire toujours la notation Endedif dans les modèles. Cela rend simplement la vie plus facile dans l'ensemble.
C'est un choix stylistique. Ils sont analogues et l'un n'est pas meilleur qu'un autre. P>
Le premier peut être bon dans certaines circonstances car il peut être plus facile de lire lors de la mise en place au milieu d'un jeu de bloc HTML. P>
J'utilise surtout si / endif lorsque vous arrêtez et démarrez le bloc de code PHP entre les deux, donc presque toujours lorsque RAW HTML est émis.
Par exemple: P>
<?php if ($n == 3) { ?>
Lorem ipsum.
<?php } ?>
Vous pouvez utiliser à la fois un style préféré et un style actuellement connu est le standard de (expr) code>. p>
D'autres ont donné la réponse "pour templatiser", mais n'ont pas vraiment expliqué pourquoi. Les bretelles bouclées sont excellentes pour désigner des blocs, mais ils s'appuient en quelque sorte sur l'indentation à lire clairement. Donc, c'est assez clair:
<?php if (1 != 2): ?> <div>This always happens! <?php while (true): ?> <p>This is going to cause an infinite loop!</p> <?php endwhile; endif;
@LonesomeDay, comment faites-vous une imbriquée si code> dans ce dernier exemple?
si (quelque chose) {faire quelque chose si (quelque chose2) {// fait quelque chose2} else} {}} code> Comment puis-je faire avec la notation plus courte?
si (quelque chose): Dosomething (); Si (quelque chose2): Dosomething2 (); autre: endif; endif; code> Ce n'est pas vraiment génial, je suis d'accord. Je, comme Edorian essentiellement jamais utiliser cette syntaxe.
Je ne l'utilise pas non plus, je demande essentiellement si je le ferais, devrais-je aussi avoir laissé le sinon code> dans votre exemple
Comment PHP sait-il quel si code> le sinon code> fait référence à? Avec Reg Sytax il y a des crochets, mais ici il n'y a rien.
@Neal de la même manière qu'elle sait quel endif code> est: selon lequel est le plus récemment ouvert si code> bloc qui n'a pas encore été fermé.
hmmmmm ok. Je suppose que cela a du sens
C'est fondamentalement comment je l'utilise. J'ai utilisé si / endif dans des vues où il y a beaucoup de HTML entre, mais dans le contrôleur, j'utilise si () {}. Je pense qu'il est plus facile de lire avec si / endif dans des vues. En outre, et ceci est une raison d'assemblée paresseuse, mon éditeur de code ferme automatiquement les supports bouclés, ce qui est agréable lorsque j'essaie d'écrire un bloc de code, mais de sorte d'ennui lorsque je veux fermer la balise PHP, puis écrivez HTML.
Je vais deviner pour templatiser, mais je me sens comme im faux
Je pensais que c'était pour les programmeurs VB ... ;-)