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

hergo
Invité n'ayant pas de compte PHPfrance

08 sept. 2005, 11:59

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 ?

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

08 sept. 2005, 13:18

Jamais vu.

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

08 sept. 2005, 13:26

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.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

HD
Mammouth du PHP | 1181 Messages

08 sept. 2005, 13:32

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
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Invité
Invité n'ayant pas de compte PHPfrance

08 sept. 2005, 13:36


hergo
Invité n'ayant pas de compte PHPfrance

08 sept. 2005, 13:52

Je connaissais pas, merci bien!!
(jvois pas trop l'intéret d'ecrire comme ca mais bon)
:D

Invité
Invité n'ayant pas de compte PHPfrance

08 sept. 2005, 18:03

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.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

08 sept. 2005, 18:16

Je ne pense que cette syntaxe soit beaucoup utilisée.

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

Mammouth du PHP | 19672 Messages

08 sept. 2005, 19:53

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..
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 353 Messages

20 avr. 2006, 13:11

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

ant
Eléphant du PHP | 161 Messages

20 avr. 2006, 13:37

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?

Eléphant du PHP | 353 Messages

20 avr. 2006, 13:43

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 ;)

ant
Eléphant du PHP | 161 Messages

20 avr. 2006, 13:47

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)
Modifié en dernier par ant le 20 avr. 2006, 13:56, modifié 1 fois.

Eléphant du PHP | 353 Messages

20 avr. 2006, 13:56

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

ant
Eléphant du PHP | 161 Messages

20 avr. 2006, 13:58

Te reste plus qu'à écrire à macromédia :lol: