184 votes

Mélange d'une variable PHP avec une chaîne littérale

Disons que j'ai une variable $test et c'est défini comme : $test = 'cheese'

Je veux produire cheesey ce que je peux faire comme ceci :

echo $test . 'y'

Mais je préférerais simplifier le code à quelque chose ressemblant davantage à ceci (qui ne fonctionnerait pas) :

echo "$testy"

Existe-t-il un moyen de faire en sorte que le y être traitée comme si elle était distincte de la variable ?

1 votes

Par $test = cheese; tu voulais dire $test = 'cheese'; à la fin de votre post (si je ne me trompe pas)...

317voto

alex Points 186293
echo "{$test}y";

Vous pouvez utiliser des accolades pour lever toute ambiguïté lors de l'interpolation de variables directement dans des chaînes de caractères.

En outre, cela ne fonctionne pas avec les guillemets simples. Donc :

echo '{$test}y';

produira

{$test}y

2 votes

Est-il également possible de mettre en ligne des appels de fonction avec une telle méthode ? Quelque chose de similaire à "foo{implode(',', [abc])}bar"

1 votes

@velop Nope. La construction de chaînes de caractères est souvent effectuée après que le traitement ait eu lieu. Appeler des fonctions au milieu de la préparation de votre sortie n'est souvent pas ce que vous voulez. Envisagez d'appeler la fonction en premier, de stocker le résultat dans une variable et de l'inclure ensuite dans la chaîne de caractères. echo "like so: $var"; .

0 votes

Comment intégrer un opérateur ternaire qui évalue deux chaînes de caractères différentes dans une chaîne de caractères ?

61voto

Pascal MARTIN Points 195780

Vous pouvez utiliser {} autour de votre variable, pour la séparer de ce qui suit :

echo "{$test}y"

À titre de référence, vous pouvez jeter un coup d'œil sur le site Web de la Commission européenne. Analyse syntaxique des variables - Syntaxe complexe (curly) du manuel PHP.

0 votes

Merci. J'ai essayé de lire le manuel des cordes mais je n'étais pas sûr de savoir exactement ce que je cherchais pour y trouver ce que je cherchais.

2 votes

De rien :-) Oui, pas toujours facile de trouver la bonne section, quand on ne sait pas vraiment ce que l'on cherche ^^.

1 votes

Il convient de noter qu'une fois que vous êtes à l'intérieur des {}, vous pouvez utiliser des expressions, et pas seulement des noms de variables, comme {$x->y[3]} ou autre.

8voto

Rizwan Points 51

Exemple :

$test = "chees";
"${test}y";

Il sortira :

fromage

C'est exactement ce que vous recherchez.

-2voto

earlyburg Points 11
$bucket = '$node->' . $fieldname . "['und'][0]['value'] = " . '$form_state' . "['values']['" . $fieldname . "']";

print $bucket;

rendements :

$node->mindd_2_study_status['und'][0]['value'] = $form_state['values']
['mindd_2_study_status']

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X