Quand vous souhaitez définir des chaines de caractère multilignes, il est courant d'écrire ceci:
Code :
$machaine = "ligne1\n";
$machaine. = "ligne2\n";
$machaine. = "ligne3";
Une autre syntaxe (très proche de celle du PERL) est proposée, et peut se révéler plus lisible. Elle consiste à englober les lignes entre des délimiteurs, par exemple << et EOS; (EOS signifie "End Of String"):
Code :
$str = <<<EOS
ligne1
ligne2
ligne3
EOS;
Le motif EOS peut etre remplacé par autre chose, par exemple, <<<END ... END;
Il faut cependant veiller à avoir le même à l'ouverture et à la fermeture.
Le terme de fermeture doit imperativement etre isolé sur une ligne. Il n'est donc pas question d'avoir:
...
ligne2
ligne3 EOS;
Le texte peut par contre contenir des variables:
Code :
$x = 1;
$y = 2;
$str = <<<EOS
liste des variables:
- x = $x
- y = $y
EOS;
Pour inclure une valeur d'un tableau, dans le texte, la syntaxe d'accès à l'élément du tableau est un peu particulière:
Code :
<?php
$tab = array("v1" => 3, "v3" => 4);
$str = <<<EOS
v1 = {$tab['v1'] }
v2 = {$tab['v2'] }
EOS;
?>
Il n'est pas indispensable de passer par une variable intermédiaire pour utiliser cette syntaxe, l'instruction suivante est tout à fait valide:
Code :
echo <<<EOS
ligne1
ligne2
ligne3
EOS;
Cette syntaxe est extremement pratique lorsque vous devez afficher un grand texte contenant de nombreuses variables.