"<?php" oui ! mais "<?" non !

Guitoux
Invité n'ayant pas de compte PHPfrance

15 mars 2007, 21:25

Bonjour !

Comme l'indique le titre, je ne comprends pas pourquoi quand je mets dans une page PHP la balise <? cela ne fonctionne pas, alors que quand je mets <?php ça marche...

En fait le navigateur ne me retourne pas d'erreur, mais il n'interprete pas le code contenu entre les 2 balises.

J'utilise apache v2.2.4 et PHP 5.2.1 :)

La question est peu etre toute bete mais j'ai bloqué à cause de ça un bon moment et j'aimerai bien savoir pourquoi je dois mettre absolument <?php alors que j'avais déjà crée de nombreuses pages en utilisant la balaise <?

Merci pour votre aide :roll:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 mars 2007, 21:30

une directive de la configuration de php, "short_open_tag" était, dans les versions 4.x de PHP activée, ce qui permettait d'encadrer des scripts par <? ?>

Depuis PHP 5, cette directive est désactivée, d'où l'obligation d'utiliser <?php qui est LA balise officielle.

Donc ... soit tu réactives les short_open_tag (DECONSEILLE), soit tu utilises la balise <?php (CONSEILLE)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Guitoux
Invité n'ayant pas de compte PHPfrance

15 mars 2007, 21:33

D'accord merci beaucou pour ces informations !

Effectivement les scripts PHP que j'avais déjà réalisé devaient tourner sous PHP4, voilà pourquoi j'ai été surpris en utilisant la version 5 !

Bon très bien... c'est quand meme fastidieux de devoir rajouter le "PHP" à chaque début de balise... :cry:

ViPHP
ViPHP | 656 Messages

15 mars 2007, 21:34

Cela s'applique aussi à la syntaxe <?= pour afficher une variable. Tu devra utiliser <?php echo

En tous cas, je ne te conseil pas de modifier la configuration de PHP pour remettre les shortOpenTags.

EDIT:
de devoir rajouter le "PHP" à chaque début de balise...
Attention, bien que ça fonctionne aussi, la notation la plus "officielle" c'est <?php?> et non pas <?PHP?>.

Mammouth du PHP | 505 Messages

15 mars 2007, 23:32

Il faut se faire une raison et ne plus utiliser les open short tag pour au moins 2 raisons.

1/ le <? est utiliser par xml pour les balises instruction ( <?xml ... ) et il y a conflit en php et xml.

2/ Il me semble qu'avec php6, les open short tags ne seront tout simplement plus possible

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

15 mars 2007, 23:46

2/ Il me semble qu'avec php6, les open short tags ne seront tout simplement plus possible
Si si elles sont encore dispo avec PHP 6 (mais ce n'est pas une raison pour continuer à les utiliser ;) )
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 170 Messages

23 mars 2007, 18:36

En gros , retiens la règle simple :
- l'utilisation de <?php ... ?> assure un fonctionnement partout sur toutes les configurations serveur.
Le reste pas !
Benjamin Franklin a dit :
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends