web-dev-qa-db-fra.com

Mélange PHP variable avec chaîne littérale

Est-ce que quelqu'un connaît un moyen plus efficace de le faire?

Disons que j'ai une variable $test et que celle-ci est définie comme suit: $test = 'cheese'

Je veux sortir cheesey, ce que je peux faire comme ceci:

echo $test . 'y'

Mais, je préférerais simplifier le code à quelque chose de plus semblable à ceci (qui ne fonctionnerait pas):

echo "$testy"

Cet exemple est trivial, mais parfois je veux ajouter une chaîne directement après une variable que j'ai entourée de guillemets (par exemple lors de la construction d'une requête MySQL) et je me suis demandé s'il existait un moyen de traiter la y comme si elle était séparée. de la variable, sans avoir besoin de la séparer.

L'exemple suivant fonctionne, ce qui se lit mieux dans l'instruction echo, mais ce n'est pas ce que je veux:

$test = 'cheese';
$y = 'y';
echo "$test$y";
111
Matt McDonald
echo "{$test}y";

Vous pouvez utiliser des accolades pour supprimer les ambiguïtés lors de l'interpolation directe de variables dans des chaînes.

En outre, cela ne fonctionne pas avec des guillemets simples. Alors:

echo '{$test}y';

va sortir 

{$test}y
192
alex

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

echo "{$test}y"

Comme référence, vous pouvez consulter la section Analyse de variables - Syntaxe complexe (curly) du manuel PHP.

45
Pascal MARTIN
$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']
0
earlyburg

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

Il va sortir ringard

Exactement ce que vous cherchez.

0
Rizwan