Une chaîne PHP est du texte entre guillemets simples ou doubles. Assemblez des chaînes avec l'opérateur point, $first . ' ' . $last, ou placez une variable directement entre guillemets doubles : "Hello, $name".
Le point assemble deux valeurs quelconques en une nouvelle chaîne. Les nombres sont convertis pour vous, donc "Total: " . 42 donne "Total: 42".
Guillemets simples ou doubles
Les guillemets doubles font deux choses de plus : ils remplacent les variables par leur valeur, et ils transforment les séquences d'échappement comme \n (saut de ligne) et \t (tabulation) en caractères correspondants. Les guillemets simples affichent le texte exactement tel qu'il est écrit, sauf \' et \\.
Utilisez des guillemets simples pour du texte fixe et des guillemets doubles quand vous voulez une variable ou un \n à l'intérieur. La différence de vitesse entre les deux est trop faible pour être mesurée, alors choisissez ce qui rend la ligne la plus lisible.
Concaténer des chaînes avec . et .=
.= ajoute à la fin d'une variable de type chaîne. C'est la façon habituelle de construire du texte dans une boucle, par exemple un morceau de HTML. Exécutez ce bloc et l'éditeur ouvre l'onglet Page, qui affiche la liste rendue.
La priorité compte quand vous mélangez . et des calculs. Depuis PHP 8, + et - sont prioritaires sur ., donc "Sum: " . 2 + 3 donne "Sum: 5". Des parenthèses rendent cela évident pour le prochain lecteur : "Sum: " . (2 + 3).
Mettre des variables, tableaux et objets dans une chaîne
Une variable simple fonctionne seule entre guillemets doubles. Pour un élément de tableau, une chaîne de propriétés d'objet ou un appel de méthode, entourez l'expression d'accolades. Les accolades séparent aussi une variable des lettres qui la suivent.
Les méthodes fonctionnent entre accolades, pas les fonctions simples : la dernière ligne affiche les accolades et le nom de la fonction autour de la valeur de $fruit. Appelez la fonction avant la chaîne, ou utilisez sprintf quand la chaîne contient beaucoup de valeurs.
Changer la casse : strtoupper, strtolower, ucfirst, ucwords
Ces fonctions travaillent octet par octet et ne modifient que les lettres de a à z. Pour du texte avec accents, en cyrillique ou en grec, utilisez les versions multioctets, qui comprennent l'UTF-8 :
Lire des caractères isolés et répéter des chaînes
Une chaîne peut être indexée comme un tableau. Les positions négatives comptent depuis la fin. Pour compter les caractères, voir strlen.
Erreur fréquente : + au lieu de .
En JavaScript, + assemble des chaînes. En PHP, + est toujours arithmétique : les chaînes numériques sont additionnées comme des nombres, et un texte qui n'est pas un nombre lève une erreur.
Si vous voyez un nombre là où vous attendiez du texte assemblé, ou Unsupported operand types: string + string, cherchez un + qui devrait être un ..
Questions fréquentes
Comment concaténer des chaînes en PHP ?
Utilisez l'opérateur point : $full = $first . ' ' . $last;. Pour ajouter à une chaîne existante, utilisez .= : $html .= '<li>Item</li>';. L'opérateur + sert aux nombres, et "Hello" + "World" lève une TypeError en PHP 8.
Quelle est la différence entre guillemets simples et doubles en PHP ?
Les guillemets doubles remplacent les variables et les séquences d'échappement : "Hi $name\n" affiche la valeur de $name et un saut de ligne. Les guillemets simples affichent presque tout tel quel : 'Hi $name\n' affiche le signe dollar, le nom et une barre oblique inverse suivie de n. Entre guillemets simples, seuls \' et \\ sont des échappements.
Comment mettre une valeur de tableau dans une chaîne PHP ?
Entourez-la d'accolades : "Hello, {$user['name']}". Cela marche aussi pour les propriétés d'objet et les appels de méthode : "{$user->getName()}". Sans accolades, "$user[name]" (sans guillemets autour de la clé) fonctionne aussi pour une clé simple.
Comment mettre une chaîne en majuscules ou en minuscules en PHP ?
strtoupper('php') renvoie PHP, strtolower('PHP') renvoie php, ucfirst('hello') met la première lettre en majuscule et ucwords('hello world') met une majuscule à chaque mot. Pour du texte avec accents ou lettres non latines, utilisez mb_strtoupper() et mb_strtolower().