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
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ère 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!"; // OK, car "," n'est pas autorisé dans les noms de variables echo "Il a goûté plusieurs $boissons"; // Pas OK, car 's' peut faire partie d'un nom de variable, et PHP recherchera alors $boissons echo "Il a goûté plusieurs ${boisson}s"; // OK ?>
|
Similairement, vous pouvez aussi 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 de truc comme
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.
|