Page 1 sur 2

echo <<<END..... (?)

Posté : 08 sept. 2005, 11:59
par hergo
Bonjour,

Je suis tombé sur un script contenant le code :
function html_footer () {
	echo <<<END
</body>
</html>
END;

}
Dreamweaver n'a pas l'air de reconnaitre le code.
Que signifie le END ?
C'est une ancienne norme ?

Posté : 08 sept. 2005, 13:18
par albat
Jamais vu.

Ça ressemble à un mauvais amalgame de codes différents, non ?

Posté : 08 sept. 2005, 13:26
par sadeq
Cette forme n'existe pas. C'est une erreur de codage je pense que la bonne forme est la suivante si celui qui a écrit ça voulait en fait marquer le pied de la page HTML par sa balise personnalisée <END> :
<?
//Afficher le pied de page
html_footer();

//FONCTIONS
function html_footer () { 
    //Affiche une marque personnalisée <END></END> pour marquer la 
   //position du pied de page
    echo "<END></END> 
              </body> 
              </html>"; 

END; //instruction PHP servant pour afficher la fin d'un tableau (hors contexte ici)
} 

?>
Ceci dit, ma réponse est une pure spéculation vu que le code
echo <<<END 
ne veut rien dire et c'est en plus une erreur d'echo.

Posté : 08 sept. 2005, 13:32
par HD
si ca existe j'ai trouvé ca dans le manuel
http://www.php.net/print
// pouvez afficher simplement vos variables comme ceci
print $foo; // foobar

print <<<END

Posté : 08 sept. 2005, 13:36
par Invité

Posté : 08 sept. 2005, 13:52
par hergo
Je connaissais pas, merci bien!!
(jvois pas trop l'intéret d'ecrire comme ca mais bon)
:D

Posté : 08 sept. 2005, 18:03
par Invité
jvois pas trop l'intéret d'ecrire comme ca mais bon
ça peut t'éviter plusieurs echo/print ou concatenations selon ce que tu as à faire.
il parait aussi que ça préserverait la mise en forme, mais je cherche encore.

Posté : 08 sept. 2005, 18:16
par albat
Je ne pense que cette syntaxe soit beaucoup utilisée.

À part par quelques accrocs du C++...

Posté : 08 sept. 2005, 19:53
par Cyrano
J'aurais du y penser, je l'avais déjà vu quelque part, mais je ne l'utilise pas : Zend studio permet l'utilisation de ce qu'ils nomment les "commentaires heredoc" mais je n'ai jamais utilisé cette fonctionalité ne sachant pas vraiment quelle en est l'utilité par rapport à des commentaires classiques..

Posté : 20 avr. 2006, 13:11
par Tictac
salut , es-ce que qqun connait la façon d'utiliser ce code car ca ne fonctionne pas chez moi !!

J'ai testé l'exemple donné dans le manuel =>

http://www.manuelphp.com/php/language.t ... eredoc.php

Merci d'avance

Posté : 20 avr. 2006, 13:37
par ant
Cette syntaxe est reprise d'une construction du langage PERL (entre autre) et qui permet, comme le dit la doc:
Cette syntaxe s'intitule le "here document" et
permet d'afficher plusieurs lignes avec de
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
Sauf que c'est beaucoup plus utile en PERL et que ca facilite bien la vie.

Je rentre pas dans les détails mais on peut notemment faire ce genre de choses:

Code : Tout sélectionner

print << x 10 ma phrase
Répètera "ma phrase" 10 fois ou bien:

Code : Tout sélectionner

print <<END echo ma phrase echo ma seconde phrase echo $var END
executera les 3 "echo"et interpolera $var.

On peut aussi instancier des tableaux par cette syntaxe etc bref, on est dans un forum php et pas perl
:lol:

Sinon, tictac, chez moi l'exemple donné dans le manuel fonctionne bien.
Tu bloques ou?

Posté : 20 avr. 2006, 13:43
par Tictac
je bloque parce que la syntaxe me bloque la page !

Dans dreamweaver , cette syntaxe n'est pas reconnue !!

je veux utiliser ca pour pouvoir faire ceci =>
$str = <<<VAR
<table>
<tr><td>test</td></tr>
</table>
VAR;

print $str;
es-ce possible ?

merci ;)

Posté : 20 avr. 2006, 13:47
par ant
Alors Dreamweaver plante dés que tu tappes cette syntaxe?

Je comprends pas parceque, c'est pas dreamweaver qui interprete tes scripts php, c'est bien php lui même quel que soit l'outil tiers que tu utilises.

Sinon passe toi de cette syntaxe, c'est pas indispensable même si ca permet d'éclaircir le code (entre autre).

Cette syntaxe fonctionne bien chez moi:
$str =  <<<VAR
<table>
<tr><td>test</td></tr>
</table>
VAR;

echo $str;
(j'utilise zend studio)

Posté : 20 avr. 2006, 13:56
par Tictac
ok beh en fait quand je copie ce code dans dreamweaver , le code ne se mets pas dans les bonnes couleurs ! bref , quand je test le code ensuite sur mon server local , ca bug , la page bloque à hauteur du code !

j'ai pourtant bien la version php correct.

merci

Posté : 20 avr. 2006, 13:58
par ant
Te reste plus qu'à écrire à macromédia :lol: