Here document
# Here document

Un Here Document aussi appelé heredoc, document en ligne ou encore document « ici-même » est une manière de déclarer une chaîne de caractères dans les interpréteurs de commandes comme les shells Unix (sh, ksh, csh, bash, zsh) et dans les langages de programmation ou de script comme Perl, PHP, Python, Ruby et JCL. Il conserve tous les sauts de lignes et espaces dans le texte, indentation comprise. Certains langages permettent l'interprétation de variable dans la chaîne.

La syntaxe la plus courante consiste en une paire de chevrons << suivie d'un délimiteur, suivi sur la ligne suivante par la première ligne du heredoc, clos à la fin par le délimiteur sur sa propre ligne.

Si la paire de chevrons est immédiatement suivie d'un tiret <<- toutes les tabulations en début de ligne du heredoc seront éliminées lors de l'interprétation de la commande. Ceci permet d'indenter le contenu du heredoc par rapport au reste du script et assurer une meilleure lisibilité.

## Exemples

### Shell Unix

On passe ici un here document dans l'entrée standard de la commande tr du shell Unix, dans le but de mettre en majuscule toutes les minuscules :

FIN est utilisé comme délimiteur du here document, ce dernier se trouve donc entre les deux FIN. OUI OUI OUI C'EST MOI BELZÉBUTH ! est le résultat de la commande. > est une invite de prompt indiquant que l'édition de la ligne de commande n'est pas encore achevée.

Il est possible d'interpoler une variable du shell dans le here document :

### PHP

En PHP, on parle de heredoc. Cela permet d'y inclure des apostrophes et des guillemets dans une chaine de caractères sans les échapper.

Depuis PHP 5.3, nowdoc est aussi disponible

Avant PHP 7.3, il était impératif de mettre l'identifiant de fermeture ("EOF;" ci-dessus) seul sur une nouvelle ligne (sans indentation).

## nowdoc

La syntaxe nowdoc est une variante de heredoc consistant à ajouter des apostrophes autour du nom, et qui n’interprète pas les variables. Exemple en PHP :

