2009-10-20 8 views
1

Possible Duplicate:
Are PHP short tags acceptable to use?<? Php vs <? ...Est-ce que ça importe?

<?php 
    //Some code 
?> 

ou

<? 
    //Some code 
?> 

Je sais que la première façon est la bonne façon mais le code PHP est pas validé. Donc, en plus d'économiser la frappe supplémentaire & octets, est-ce important?

mise à jour Merci pour les réponses ...

  1. je ne savais pas qu'ils étaient appelés balises courtes (donc pourquoi je ne trouve pas le double question SO)
  2. j'avais aucune idée qu'il y avait une option de configuration de serveur spécifique pour autoriser/interdire les balises courtes.

Merci encore

+0

Dupe: http://stackoverflow.com/questions/200640/are-php-short-tags-acceptable-to-use –

+0

Veuillez également consulter mon édition pour une autre raison de ne pas les utiliser et les désactiver complètement. –

+0

Ce n'est pas une copie exacte. – erenon

Répondre

10

Il fait, si quelqu'un utilise jamais votre code sur un serveur où les balises courtes sont désactivées. Je travaille avec plusieurs serveurs où ils sont. A part ça, non. L'utilisation de la version courte rend votre script moins portable pour la raison mentionnée ci-dessus. Cela peut ou peut ne pas être un problème pour vous.

Ceci est un autre problème entièrement lié. Si vous essayez de générer certains types de fichiers à partir de PHP (XML est le candidat qui revient le plus souvent pour moi), avoir des balises courtes peut être un problème. Par exemple, ce qui suit provoque une erreur de syntaxe PHP:

<?xml version="1.0" ?> 

Vous devez écrire à la place ce qui suit sur un serveur qui a des balises courtes activé:

<?php echo '<?xml version "1.0" ?>'; ?> 

Gah!

+0

Il est inhabituel de voir des étiquettes courtes désactivées. Ont-ils déjà expliqué pourquoi ils l'ont désactivé (ou pourquoi il ne peut pas être activé)? Je suppose que cela peut être bon d'imposer une équipe pour n'utiliser que la méthode ' alex

+5

Je suis d'accord que la grande majorité d'entre eux les ont activés. Mais vraiment, la seule raison de les utiliser est la paresse de toute façon. Je préfère utiliser la version "longue" moi-même. Personnellement, je les désactive généralement sur mes serveurs de développement pour récupérer tous les scripts de tiers que j'utilise et qui les utilisent. Dans mon expérience assez générale, ce n'est généralement pas un bon premier signe sur la qualité générale du script s'ils l'utilisent (paresseux, pas au courant des choses, quoi qu'il arrive). –

+0

@Matthew Tout à fait d'accord avec vous. – alex

0

Pas de différence c'est juste une question de préférence je pense, et pourquoi est-ce que ça devrait être important? c'est juste 3 autres octets.

Edit:

a oublié de dire que vous devez activer sténo dans php.ini

+0

Cela compte, car il s'agit d'une question de configuration du serveur. Je travaille sur certains serveurs où la deuxième version ne fonctionnerait pas. –

+0

Oui, j'ai oublié de dire que vous devez l'activer. – lemon

0

le support de fermeture n'est pas obligatoire

+0

Seulement s'il n'y a rien d'autre après le code PHP bien sûr, ce qui n'est pas spécifié/non pertinent dans cette question. – deceze

+0

Ceci s'applique uniquement au tout dernier bloc de code PHP dans un fichier. – alex

+0

@deceze: ofcourse – Natrium

0

Sur certains systèmes, l'option par défaut pour le short_open_tags est éteint , donc ce dernier ne fonctionne pas, alors que le premier fait, de sorte qu'il peut complètement casser votre site Web si vous utilisez le second. Personnellement, j'aime juste remplacer le réglage et utiliser le second.

4

Si votre projet est susceptible d'être déployé sur des serveurs différents (logiciels open source, par exemple), il est préférable d'utiliser toujours <?php

Cependant, si vous êtes comme moi, et toujours lutter pour une portabilité maximale, utilisez <?php même si vous ne croyez pas que votre logiciel quittera votre serveur. La plupart des serveurs ont des étiquettes courtes activées. Cependant, s'ils ont des tags courts désactivés, et que vous les utilisez, votre PHP sera exposé au monde (si sous la racine du document).

0
<? ?> 

sont des balises courtes, si les balises courtes sont désactivées, il ne fonctionnera pas.