4.2.5.1.4 Traitement des variables dans les chaînes
4.2.5.1 Syntaxe
4.2.5 Les chaînes de caractères
4.2 Les types
4 Référence du langage
Manuel PHP
->Syntaxe simple . Syntaxe complexe
|
4.2.5.1.4.1 Syntaxe simple
Dès qu'un signe dollar
$
est rencontré, l'analyseur
PHP va lire autant de caractères qu'il peut pour former un nom de
variable valide. Entourez le nom de la variable avec des accolades
pour indiquer explicitement son nom.
Utilisation des accolades {} dans les chaînes |
<?php $boisson = 'vin'; echo "Du $boisson, du pain et du fromage!"; // Correct, car "," n'est pas autorisé dans les noms de variables
echo 'Il a goûté plusieurs ' . $boissons; // Pas correct, car 's' peut faire partie d'un nom de variable, et PHP recherchera alors $boissons
echo "Il a goûté plusieurs ${boisson}s"; // Correct ?>
|
De la même façon, vous pouvez utiliser un élément
de tableau ou un membre d'objet. Pour les éléments
de tableau, le crochet fermant '
]
'
marquera la fin du nom de la variable. Pour les
membres d'objets, les mêmes règles que ci-dessus
s'appliquent. Cependant, il n'existe pas d'astuce comme cela
pour les variables simples.
Utilisation des accolades {} dans les chaînes pour les tableaux |
<?php // Ces exemples sont spécifiques à l'utilisation de tableaux dans une chaîne. // Lorsque vous êtes hors d'une chaîne, utilisez toujours des guillemets // autour des index de tableau, et n'utilisez pas d'{accolades}.
// Affichons toutes les erreurs error_reporting(E_ALL);
$fruits = array('fraise' => 'rouge', 'banane' => 'jaune');
// Fonctionne mais notez que cela fonctionne pas comme // si cela était hors d'une chaîne echo "Une banane est $fruits[banane].";
// Fonctionne echo "Une banane est {$fruits['banane']}.";
// Fonctionne mais PHP cherche une constante appelée banane // tel que décrit ci-dessous echo "Une banane est {$fruits[banane]}.";
// Ne fonctionne pas, il manque les accolades. Cela donne une erreur d'analyse echo "Une banane est $fruits['banane'].";
// Fonctionne echo "Une banane est " . $fruits['banane'] . ".";
// Fonctionne echo "Ce carré a un coté de $square->width mètres de large.";
// Ne fonctionne pas. Pour une solution, voyez la syntaxe complexe. echo "Ce carré a un coté de $square->width00 centimètres."; ?>
|
Pour tout ce qui sera plus compliqué, voyez la syntaxe complexe.
|