W3docs

Les chaînes PHP : un guide approfondi

Plongez dans le monde des chaînes PHP : création, guillemets, concaténation, fonctions intégrées, séquences d'échappement et syntaxes Heredoc/Nowdoc.

Une chaîne est une séquence de caractères utilisée pour stocker et manipuler du texte — des noms, des messages, du HTML, du JSON, le contenu de fichiers, et bien plus encore. Les chaînes sont l'un des types de données fondamentaux de PHP, et presque tous les programmes PHP les utilisent. Ce guide explique comment créer des chaînes, la différence essentielle entre guillemets simples et doubles, la concaténation, l'accès aux caractères individuels, les fonctions intégrées les plus utiles, les séquences d'échappement, ainsi que les syntaxes multi-lignes Heredoc et Nowdoc — avec des exemples exécutables tout au long.

Qu'est-ce qu'une chaîne PHP ?

Une chaîne est du texte entouré de guillemets et stocké dans une variable. PHP vous offre quatre façons de l'écrire : guillemets simples, guillemets doubles, Heredoc et Nowdoc. Les deux styles de guillemets sont ceux que vous utiliserez le plus souvent :

<?php
$single = 'Hello World';
$double = "Hello World";

echo $single; // Hello World
echo "\n";
echo $double; // Hello World

Les chaînes n'ont pas de limite de longueur fixe autre que la mémoire disponible, donc une chaîne peut contenir un seul caractère ou un document entier.

Guillemets simples vs guillemets doubles

C'est la distinction la plus importante à apprendre tôt, car choisir le mauvais style de guillemets est une source courante de bugs. Les guillemets doubles analysent les séquences d'échappement et interpolent les variables ; les guillemets simples traitent presque tout de façon littérale.

<?php
$name = 'Alice';

echo "Hello $name\n"; // Hello Alice  (variable + newline parsed)
echo 'Hello $name\n'; // Hello $name\n  (printed literally)

Lorsque la variable touche d'autres caractères, entourez-la d'accolades afin que PHP sache où le nom se termine :

<?php
$item = 'book';

echo "I bought 3 {$item}s\n"; // I bought 3 books

Les guillemets simples sont légèrement plus rapides et plus sûrs lorsque vous n'avez pas besoin d'interpolation — préférez-les pour le texte fixe. Utilisez les guillemets doubles (ou Heredoc) quand vous devez incorporer des variables ou des séquences d'échappement.

Concaténation de chaînes

Assembler des chaînes en une seule s'appelle la concaténation. PHP utilise le point (.) comme opérateur, et .= ajoute à une chaîne existante :

<?php
$first = 'Hello';
$last  = 'World';

$greeting = $first . ' ' . $last;
echo $greeting; // Hello World

$greeting .= '!';
echo "\n" . $greeting; // Hello World!

Notez que PHP utilise . pour la concaténation, pas + — utiliser + sur deux chaînes tente une addition numérique et ce n'est presque jamais ce que vous souhaitez.

Accès aux caractères

Une chaîne se comporte comme un tableau de caractères. Vous pouvez lire n'importe quel caractère par son index à base zéro en utilisant des crochets :

<?php
$word = 'PHP';

echo $word[0];  // P
echo $word[2];  // P
echo $word[-1]; // P  (negative index counts from the end)

Pour obtenir la longueur de la chaîne, utilisez strlen :

<?php
echo strlen('Hello World'); // 11 (the space counts)

Fonctions de chaînes courantes

PHP est livré avec une riche bibliothèque de fonctions de chaînes. Voici celles que vous utiliserez le plus souvent, chacune renvoyant vers un chapitre dédié :

FonctionUtilité
strlenLongueur d'une chaîne (en octets)
strposPosition de la première occurrence d'une sous-chaîne
str_replaceRemplacer toutes les occurrences d'une sous-chaîne
strtoupper / strtolowerModifier la casse
substrExtraire une partie d'une chaîne
trimSupprimer les espaces aux deux extrémités
explode / implodeConvertir entre chaînes et tableaux
sprintfFormater une chaîne à partir d'un modèle

Un aperçu rapide :

<?php
$text = '  The quick brown fox  ';

echo strlen($text);                  // 23
echo "\n";
echo strpos($text, 'quick');         // 6
echo "\n";
echo str_replace('quick', 'slow', trim($text)); // The slow brown fox
echo "\n";
echo strtoupper(trim($text));        // THE QUICK BROWN FOX
echo "\n";
echo substr(trim($text), 0, 3);      // The

sprintf construit une chaîne à partir d'un modèle, ce qui est pratique pour les nombres et le remplissage :

<?php
$price = 9.5;
echo sprintf('Total: $%.2f', $price); // Total: $9.50

Travailler avec Unicode

Les fonctions standard comme strlen et strpos comptent des octets, pas des caractères. Pour du texte contenant des lettres accentuées, des emoji ou des scripts non-latins, utilisez les équivalents multi-octets mb_* de l'extension mbstring pour que les caractères multi-octets soient comptés correctement :

<?php
$word = 'café';

echo strlen($word);    // 5  (é is 2 bytes in UTF-8)
echo "\n";
echo mb_strlen($word); // 4  (correct character count)

Séquences d'échappement

Dans les chaînes entre guillemets doubles, un antislash commence une séquence d'échappement — un moyen d'écrire des caractères difficiles à saisir ou qui seraient autrement analysés. Les plus courants :

SéquenceSignification
\nSaut de ligne
\tTabulation
\"Guillemet double littéral
\\Antislash littéral
\$Signe dollar littéral (supprime l'interpolation)
<?php
echo "Line 1\nLine 2";       // prints on two lines
echo "\n";
echo "Price: \$5";           // Price: $5
echo "\n";
echo "She said \"hello\"";   // She said "hello"

Les chaînes entre guillemets simples reconnaissent uniquement \' (un guillemet littéral) et \\ ; tout le reste, y compris \n, est affiché tel quel.

Heredoc et Nowdoc

Lorsque vous avez besoin d'une longue chaîne multi-lignes, Heredoc et Nowdoc sont plus propres que d'échapper les sauts de ligne manuellement.

Heredoc se comporte comme une chaîne entre guillemets doubles : les variables sont interpolées et les séquences d'échappement fonctionnent. Ouvrez-le avec <<< suivi d'un identifiant, et fermez-le avec ce même identifiant sur sa propre ligne :

<?php
$name = 'Alice';

$message = <<<EOT
Dear $name,
Welcome aboard!
EOT;

echo $message;
// Dear Alice,
// Welcome aboard!

Nowdoc se comporte comme une chaîne entre guillemets simples — pas d'interpolation, pas d'analyse des séquences d'échappement. La seule différence syntaxique est que l'identifiant d'ouverture est entouré de guillemets simples :

<?php
$name = 'Alice';

$message = <<<'EOT'
Dear $name,
Welcome aboard!
EOT;

echo $message;
// Dear $name,
// Welcome aboard!

Utilisez Heredoc pour la sortie modélisée (e-mails, blocs HTML) et Nowdoc lorsque vous voulez que le texte reste exactement tel qu'il est écrit.

Résumé

Les chaînes PHP sont le fondement du travail avec du texte. Les points essentiels à retenir :

  • Utilisez les guillemets simples pour le texte littéral et les guillemets doubles (ou Heredoc) quand vous avez besoin d'interpolation de variables ou de séquences d'échappement.
  • Concaténez avec l'opérateur ., pas +.
  • Utilisez les fonctions intégrées comme strlen, substr, str_replace et explode plutôt que de les réinventer.
  • Utilisez les fonctions mb_* chaque fois que le texte peut contenir des caractères non-ASCII.

Ensuite, apprenez à afficher des chaînes et d'autres valeurs avec echo et print, ou explorez les nombres et les tableaux PHP.

Pratique

Pratique
En PHP, lesquelles des affirmations suivantes sur les chaînes sont correctes ?
En PHP, lesquelles des affirmations suivantes sur les chaînes sont correctes ?
Was this page helpful?