Bonjour à tous,
Aujourd'hui je vais vous présenter les différentes méthodes pour déclarer une chaînes de caractères en PHP.
Bien déclarer ses chaînes de caractères en PHP
Il existe actuellement 4 façons de délimiter une chaînes de caractères:
- les guillements simpes
- les guillements doubles
- la syntaxe Heredoc
- la syntaxe Nowdoc
Les guillemets simples
La première méthode pour déclarer une chaîne de caractères est d'utiliser les guillemets simples.
<?php
echo 'Ceci est une chaîne de caractères entourée de guillemets simples';
echo 'Si je veux afficher un guillemet simple je dois l\'échapper.';
echo 'Le caractère d\'échappement "\\" doit lui aussi être échappé.';
echo 'Je peux utiliser "les guillemets doubles" sans soucis.';
echo 'Le caractère d\'échappement ne fonctionne pas sur les autres caractères. \n et \r s\'afficheront tels quels.';
Résultat :
Ceci est une chaîne de caractères entourée de guillemets simples
Si je veux afficher un guillemet simple je dois l'échapper.
Le caractère d'échappement "\" doit lui aussi être échappé.
Je peux utiliser "les guillemets doubles" sans soucis.
Le caractère d'échappement ne fonctionne pas sur les autres caractères. \n et \r s'afficheront tels quels.
Les guillemets doubles
Si nous utilisons les guillemets doubles (") à la place des guillemets simples ('), nous aurons alors à notre disposition un certains nombres de séquences utilisables avec le caractère d'échappement ().
Séquences | Utilisations |
---|---|
\n | Fin de ligne |
\r | Retour à la ligne |
\t | Tabulation horizontale |
\v | Tabulation verticale |
\e | Echappement |
\f | Saut de page |
\\ | Antislash |
\$ | Signe dollar |
\" | Guillemet double |
<?php
echo "Ceci est une chaîne de caractères entourée de guillemets doubles.";
echo "Je peux utiliser des séquences \n\r pour faire des retour à la ligne, \t des tabulations horizontales ou \v verticales.";
Résultat :
Ceci est une chaîne de caractères entourée de guillemets doubles.
Je peux utiliser des séquences
pour faire des retour à la ligne, des tabulations horizontales ou
verticales.
L'avantage des guillemets doubles est que les noms de variables seront interprétés.
Deux notations sont possibles pour l'interprétation des variables : la simple ou la complexe.
La notation simple
L'utilisation du signe ($) suivi du nom d'une variable entouré ou non d'accolades permet de faire appel à cette variable.
<?php
$myVar = "ceci est le contenu de ma variable";
echo "j'affiche le contenu de ma variable : $myVar";
echo "j'affiche le contenu de ma variable : ${myVar}";
$myArray = ['zéro', 'un', 'deux', 'trois'];
echo "mon tableau : $myArray[0], ${myArray[1]}, ${myArray[2]}, $myArray[3] et encore du texte.";
Résultat :
j'affiche le contenu de ma variable : ceci est le contenu de ma variable
j'affiche le contenu de ma variable : ceci est le contenu de ma variable
mon tableau : zéro, un, deux, trois et encore du texte.
La notation complexe
La notation complexe a l'avantage de pouvoir faire appel à des éléments plus complexe tels que des attributs d'objets ou méthodes.
Son utilisation est simple, il suffit d'entourer notre expression complexe d'accolades (sans espaces).
On pourra également faire appel à des constantes ou des variables static de classes, cependant elles seront interprétés comme des noms de variables liées au contexte.
<?php
class Test {
public $publicVar = "variable publique";
private $privateVar = "variable privée";
const MA_CONSTANTE = 'constante';
public static $staticVar = 'static';
public function getPrivateVar() {
return $this->privateVar;
}
}
$constante = 'aaa';
$static = 'bbb';
$myVar = new Test();
echo "Ceci est une {$myVar->publicVar}";
echo "Ceci est une {$myVar->getPrivateVar()}";
echo "Ceci affiche {${Test::MA_CONSTANTE}}";
echo "Ceci affiche {${Test::$staticVar}}";
Résultat :
Ceci est une variable publique
Ceci est une variable privée
Ceci affiche aaa
Ceci affiche bbb
La syntaxe Heredoc
La troisième méthode pour définir une chaîne de caractères se comporte comme une chaîne entourée de guillemets doubles. Les variables seront donc interprétées et les séquences d'échappement utilisables.
Sa syntaxe peut cependant sembler particulière.
Il faudra utiliser 3 signes inférieurs suivi d'un identifiant. Aux lignes suivantes, nous aurons notre chaîne. Pour conclure, sur une nouvelle ligne, sans indentation ni espace, il faudra répéter notre identifiant et terminer la ligne par un point-virgule.
<?php
$variable = 1234;
$heredoc = <<<IDENTIFIANT
Voici ma chaîne.
Je peux écrire ce que je veux.
Voici une variable $variable
IDENTIFIANT;
echo $heredoc;
Résultat :
Voici ma chaîne.
Je peux écrire ce que je veux .
Voici une variable 1234
La syntaxe Nowdoc
Pour finir, la syntaxe nowdoc est similaire à heredoc, à ceci près que heredoc est comparable aux guillemets doubles alors que nowdoc est comparables aux guillemets simples.
Sa syntaxe est proche de celle d'heredoc. Il faudra simplement entourer l'identifiant de guillemets simples lors de sa déclaration.
<?php
$variable = 1234;
$heredoc = <<<'IDENTIFIANT'
Voici ma chaîne.
Je peux écrire ce que je veux.
Voici une variable $variable
IDENTIFIANT;
echo $heredoc;
Résultat :
Voici ma chaîne.
Je peux écrire ce que je veux.
Voici une variable $variable
La concaténation de chaînes (bonus)
Je ne pouvais pas vous laisser partir sans vous parler de l'opérateur de concaténation de chaînes : le point (.)
Il suffit de le placer entre deux chaînes, variables ou tout autre élément représentant une chaîne de caractères pour qu'ils soient mis bout à bout.
<?php
class Test {
public static function bonjour() {
echo 'Bonjour, voici ';
}
}
$var = "un bout de texte.";
echo Test::bonjour() . $var;
Résultat :
Bonjour, voici un bout de texte
Le mot de la fin
J'espère avoir été le plus clair possible.
Personnellement j'utilise principalement les deux premières méthodes pour déclarer mes chaînes de caractères.
Heredoc et Nowdoc peuvent être utilisées pour gagner en lisibilité en cas de texte longs.
A très bientôt pour découvrir un peu plus PHP...
Congratulations @bibi4537! You received a personal award!
Click here to view your Board of Honor
Do not miss the last post from @steemitboard:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @bibi4537! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit