Guillemets doubles
<<<
Syntaxe Heredoc Traitement des variables dans les chaînes
>>>

4.2.5.1 Syntaxe
4.2.5 Les chaînes de caractères
4.2 Les types
4 Référence du langage
 Manuel PHP

Guillemets simples
Guillemets doubles
->Syntaxe Heredoc
Traitement des variables dans les chaînes
Accès et modification des caractères d'une chaîne

4.2.5.1.3 Syntaxe Heredoc

Un autre moyen de délimiter les chaînes est d'utiliser la syntaxe dite " Heredoc " (en français, documentation ici): <<<, suivi d'un identifiant arbitraire, puis de la chaîne, puis l'identifiant initial pour terminer la séquence.

L'identifiant fermant doit commencer à la première colonne de la ligne. L'identifiant utilisé doit suivre les mêmes règles que les étiquettes PHP : il ne doit contenir uniquement que des caractères alpha-numériques, et des soulignés ("_"), et enfin, commencer par un caractère alphabétique ou un souligné.

Attention

Il est très important de noter que la ligne qui contient l'identifiant de fermeture ne doit contenir aucun autre caractère, hormis, éventuellement, un point-virgule ( ; ). Cela signifie notamment que l'identifiant ne doit pas être indenté et qu'il n'y a aucun caractère d'espacement ou de tabulation avant ou après le point virgule. Il est également important de noter que le premier caractères avant l'identifiant de fermeture doit être une nouvelle ligne, tel que définie par votre système. Par exemple, ce sera \r sous Macintosh.

Si cette règle n'est pas respectée et que l'identifiant de fermeture n'est pas correct, alors, il ne sera pas considéré comme un identifiant fermant et PHP continuera d'en chercher un. Si dans ce cas aucun identifiant de fermeture n'est trouvé, une erreur d'analyse sera émise, contenant comme numéro de ligne la fin du script.

Il n'est pas autorisé d'utiliser la syntaxe " Heredoc " lors de l'initialisation des membres d'une classe. Utilisez une autre syntaxe pour les chaînes à la place.
Exemple incorrect

<?php
class foo {
  
public $bar = <<<EOT
bar
EOT;
}
?>

La syntaxe Heredoc se comporte exactement comme une chaîne à guillemets doubles, sans les guillemets doubles. Cela signifie que vous n'avez pas à échapper les guillemets (simples ou doubles) dans cette syntaxe. Les variables sont remplacées par leur valeur et le même soin doit leur être apporté que dans les chaînes à guillemets doubles.
Exemple de chaîne HereDoc

<?php
$str
= <<<EOD
  Exemple de chaîne
  s'étalant sur
  plusieurs lignes
  avec la syntaxe heredoc
EOD;

/* Exemple plus complexe, avec des variables. */
class foo {
    var
$foo;
    var
$bar;
    function
foo() {
        
$this->foo = 'Foo';
        
$this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MonNom';

echo <<<EOT
  Mon nom est "$name". J'affiche des $foo->foo.
  Maintenant, j'affiche un
{$foo->bar[1]}.
  Ceci se traduit par un 'A' majuscule :
\x41
EOT;
?>

Note

Le support Here doc a été ajouté en PHP 4.

<< Syntaxe Heredoc >>
Guillemets doubles Syntaxe Traitement des variables dans les chaînes