Sont PHP balises courtes acceptable à utiliser?

Voici les informations selon la documentation officielle:

Il y a quatre paires de
l'ouverture et la fermeture des balises qui peuvent être
en PHP. Deux de ceux-ci, <?php ?>
et <script language="php"> </script>,
sont toujours disponibles. Les deux autres
sont les balises courtes et ASP balises de style, et
peut être activé et désactivé à partir de la
php.ini fichier de configuration. En tant que tel,
alors que certaines personnes trouvent les balises courtes et
Les balises du style ASP pratique, ils sont
moins portable, et généralement pas
recommandé
.

Dans mon expérience, la plupart des serveurs ne ont les balises courtes activé. En tapant

<?=

est bien plus pratique que de taper

<?php echo 

Les programmeurs de confort est un facteur important, de sorte pourquoi n'est-il pas recommandé?

  • Pour répondre à la why partie, je voudrais citer Zend PHP 5, certification: "les balises Courtes ont été, pour un temps, la norme dans le monde PHP; cependant, elles ont l'inconvénient majeur de conflit avec XML en-têtes et, par conséquent, ont quelque peu tombé dans l'oubli."
  • Ce qui est le cas lorsque ce problème survient, est-ce à dire c'est une douleur pour les développeurs de générer du code XML à l'aide de PHP?
  • Disons que vous avez des documents XML que vous souhaitez publique, mais que vous souhaitez les documents à php parseable pour quelque raison que ce soit, de sorte que vous faites .xml parseable par votre navigateur. Vous utilisez les balises courtes, de sorte qu'elles sont activées, et, soudain, le document XML est arriver analysée via le XML en-têtes, de casser des choses. M'ont rendu fou à essayer de comprendre ce depuis longtemps. Depuis codes courts ont été désactivés sur n'importe quel serveur je exécuter et toute l'équipe, j'ai travaillé avec de a dû recourir à la non code court
  • Si vous strictement regarder le cas pour les quelques personnages, je dirais qu'il n'y en est pas, pour la plupart des gens qui sont sur ce forum, étant donné les scénarios typiques, ils sont.
  • Si la documentation a déclaré que ceux-ci étaient mal vus, comment venir en PHP 5.4.0, ils sont maintenant activées?
  • J'ai mis en haut de ma config: if (!ini_get('short_open_tag')) { ini_set('short_open_tag', '1') or die("impossible d'activer PHP balises Courtes!"); } Ensuite, si j'ai le die() erreur je peux rechercher et remplacer <? pour <?php. De toute façon, juste une idée.
  • De PHP 5.4.0 la short_open_tag directive ne pas inclure les tag echo <?= $example;?>! Ceci est très important car l'utilisation de toutes les autres balises courtes est considéré comme futile. De toute façon l'utilisation de l'écho court balise est encouragé à partir de maintenant. Il prévoit une plus lisse et plus propre base de code - esp. dans les fichiers de vue. Donc, pour PHP >= 5.4.0 <?= ?> peut être utilisé sans paramètre short_open_tag. S'il vous plaît ne pas utiliser les autres balises courtes dans votre code. Le code-Dieux se fâchent quand vous le faites...
  • Bien que cette question n'a pas vraiment le StackOverflow format ("non constructive"), j'ai décidé de voter pour le laisser "ouvert" comme je pense que cette question peut être utile pour référence future. Il a reçu beaucoup de votes, ce qui est (OMI) d'une indication claire qu'à titre informatif question.
  • Je vais ajouter ce que un rapide commentaire, parce qu'il y a déjà beaucoup trop long réponses: <? n'est pas seulement dans le fichier XML pour l'ouverture <?xml version="1.0" ?> déclaration; c'est la syntaxe générale pour les "instructions de traitement", le 2ème plus souvent d'être <?xml-stylesheet ... ?>. <?php peut effectivement être considéré comme une instruction de traitement valide, comme on peut le <?= (comme l'5.4+), mais revendiquant l'ensemble de <? ainsi crée des conflits inutiles entre les syntaxes.
  • "Non recommandé" ne signifie pas que vous ne pouvez pas l'utiliser. Si vous trouvez qu'il rend la vie meilleure pour vous, par tous les moyens d'avoir une explosion. Juste être conscient des mises en garde. De toutes les personnes, les programmeurs doivent être à l'aise avec il y a plus d'une façon de faire les choses. Rendre agréable quand vous le pouvez. S'adapter quand il est prudent.
  • Fait amusant: j'ai eu directement la main à convaincre le PHP dev team pour mettre <?= en 5.4.0 comme toujours activé. Lors de l'écriture de l'open source, vous devez supposer short_open_tag est réglé sur "non", mais fermé/propriété du code source peut être de toute façon. Avant même 5.4, j'ai trouvé l'écriture <?php echo ou <?php print ad nauseam à être assez ennuyeux et erreurs et, sur les systèmes internes, j'ai activé short_open_tag juste pour obtenir l'accès à <?=.
  • en effet, le besoin majeur pour short_open_tag est venue des anciens systèmes avec le code désordre. Je comprends la nécessité de l'utiliser parfois, mais uniquement pour les systèmes existants. Je considère encore les autres balises courtes un mal qui ne doit pas être utilisé 🙂

InformationsquelleAutor MDCore | 2008-10-14