Il n’est pas rare que vous ayez à créer des chaînes de caractères multilignes lorsque vous écrivez un programme en PHP. Il y a plusieurs façons de créer une chaîne de caractères multi-lignes en PHP. Nous allons aborder trois d’entre elles en détail dans ce tutoriel.
1. Utiliser les guillemets doubles et les séquences d’échappement
Comme vous le savez, nous pouvons créer des chaînes de caractères en PHP en utilisant des guillemets simples et doubles. Nous disposons également de séquences d’échappement spéciales pour afficher les caractères spéciaux. Par exemple, nous pouvons utiliser \n pour un saut de ligne et \r pour un retour chariot.
En écrivant \n ou \r\n dans vos chaînes de caractères, vous obtiendrez de nouvelles lignes en PHP. Cela vous permet de créer facilement des caractères multilignes. Cependant, vous devez garder à l’esprit que ces séquences d’échappement ne fonctionnent que dans les chaînes de caractères entre guillemets doubles. Si vous essayez de les utiliser à l’intérieur de guillemets simples, elles seront affichées exactement comme elles ont été tapées.
Voici quelques exemples de création de chaînes de caractères multilignes en PHP avec des guillemets doubles :
<?php
$single_quote = 'How are you?\nI am fine.';
$double_quote = "How are you?\nI am fine.";
// How are you?\nI am fine.
echo $single_quote;
/*
How are you?
I am fine.
*/
echo $double_quote;
?>
Un point que je voudrais mentionner est que ces séquences de caractères de nouvelle ligne sont spécifiques à la plate-forme. Cela signifie que vous pouvez rencontrer des comportements inattendus en codant en dur ces séquences dans votre code.
En général, les machines Windows utilisent \r\n, et les machines Linux ou macOS utilisent \n.
2. Utilisation de PHP_EOL pour créer des chaînes de caractères multilignes
Vous pouvez éviter d’utiliser des séquences de fin de ligne codées en dur dans votre code avec l’aide de la constante PHP_EOL. Cette constante va automatiquement créer le symbole de fin de ligne correct pour la plateforme sur laquelle le script est exécuté.
<?php
$string_php_eol = "Bonjour?".PHP_EOL.", ça va ?.";
$php_eol_a = "Bonjour".PHP_EOL;
$php_eol_b = "Comment tu vas ?".PHP_EOL;
$php_eol_c = "Un petit verre ce soir ?".PHP_EOL;
$php_eol_d = "Avec plasir !".PHP_EOL;
$joined_string_php_eol = $php_eol_a.$php_eol_b.$php_eol_c.$php_eol_d;
?>
Pour les petites chaînes de caractères multilignes, vous pouvez tout concaténer sur une seule ligne. Cependant, vous pouvez également répartir votre chaîne sur plusieurs variables avant de les joindre pour créer votre chaîne multiligne.
3. Utilisation des syntaxes Heredoc et Nowdoc pour créer des chaînes de caractères multilignes
La troisième façon de créer des chaînes de caractères multilignes en PHP implique l’utilisation des syntaxes Heredoc et Nowdoc.
La syntaxe Heredoc nous demande de fournir un identifiant et une nouvelle ligne après l’opérateur <<<. Ensuite, nous écrivons notre propre chaîne et utilisons à nouveau le même identifiant pour marquer la fin de notre chaîne multiligne.
À partir de PHP 7.3.0, vous pouvez ajouter une indentation avant l’identifiant de fermeture. Cependant, gardez à l’esprit que l’indentation de l’identifiant de fin ne doit pas dépasser l’indentation des lignes de la chaîne multi-lignes. Assurez-vous également que l’indentation ne comporte pas un mélange d’espaces et de tabulations.
<?php
$nom = "Mario";
$herea = <<<HEREA
Je m'appelle $nom?
Ca se passe bien
Un petit verre ce soir ?
Avec plaisir
HEREA;
?>