- Apostrophes ou guillemets ?
- Caractères spéciaux
- Here Doc
- Accolades
Apostrophes ou guillemets ?
Un chaîne de caractères est contenue soit entre des guillemets ("), soit entre des apostrophes (').
Les deux lignes suivantes sont donc equivalentes :
print "Hello!"; // Avec des guillemets
print 'Hello!'; // Avec des apostrophes
Quelle est la différence ? La voici : en utilisant des guillemets, les variables contenues à l'interieur de
la chaîne seront évaluées et remplacées par leur valeur à l'instant t.
Ainsi :
$nom = "Raphaël";
print "Je m'appelle $nom"; // Sortie -> Je m'appelle Raphaël
print 'Je m'appelle $nom'; // Sortie -> Je m'appelle $nom
Caractères spéciaux
Comme en C, on peut utiliser l'anti-slash (\) pour echapper des caractères spéciaux, comme par
exemple, un apostrophe ou des guillemets :
print 'It\'s Sunday and I\'ll go to the Church'; // It's Sunday and I'll go to the Church
print "Et il lui cria : \"Bouh!\" et il sursauta"; // Et il lui cria : "Bouh!" et il sursauta
Il existe aussi des caractères qui ont une signification particulière, comme le montre le tableau ci-dessous.
On appelle ceci des séquences echapes.
Les caractères spéciaux en PHP
|
Sequences
|
Signification
|
|
\n
|
Nouvelle ligne (LineFeed). Caractère ASCII 10
|
|
\r
|
Retour chariot (Carriage Return). Caractère ASCII 13
|
|
\t
|
Tabulation. Caractère ASCII 9
|
|
\\
|
Anti-slash lui même
|
|
\$
|
Caractère $. Valable uniquement pour les guillemets (")
|
Here Doc
Ce qui est bien avec PHP, c'est que l'on peut écrire une chaîne de caractères sur plusieurs lignes :
$html = "
<html>
<head>
<title>Ma page Web</title>
</head>
<body>
<h2>Welcome to Paradise!</h2>
</body>
</html>
";
Par contre si on veut pouvoir être tout à fait libre d'utiliser n'importe quel caractère dans une chaîne,
comme les guillemets par exemple, on peut utiliser la syntaxe Here Doc heritée de Perl (que j'aime
bien :-). On débute la chaîne par <<< et un identifiant quelconque. On écrit ensuite notre texte,
puis on termine en ré-écrivant l'identifiant choisi en DEBUT d'une nouvelle ligne, sans oublier le point-virgule
bien sur.
Par exemple :
$html = <<< MON_DOC_HTML
<html>
<head>
<title>Ma page Web</title>
<meta name="description" content="Ma Page Oueb">
<meta name="keywords" content="paradise,web,page,perso">
</head>
<body>
<h2 align="center">Welcome to Paradise!</h2>
</body>
</html>
MON_DOC_HTML;
Attention cependant : avec cette syntaxe, les variables sont toujours interprétées.
Accolades
Dans une chaîne avec guillemets, les accolades permettent de specifier des noms de variables comme si elles
se situées hors de cette chaîne.
$var = "N'est ce pas ?";
print "Quelle complexitée! ${'v' . 'a' . 'r'}"; // Une concatenation est effectuée
// lors de l'analyse
Les accolades sont également utiles pour passer des tableaux mutli-dimensionnels (que nous verrons plus tard) :
$ar = array();
$ar[] = array("fou");
print "C'est $ar[0][0], non ?"; // Provoque une erreur
print "C'est {$ar[0][0]}, non ?"; // OK!
|