web-dev-qa-db-fra.com

php - insère une variable dans une chaîne d'écho

$i = 1
echo '
<p class="paragraph$i">
</p>
'
++i

Essayer d'insérer une variable dans une chaîne en écho. Le code ci-dessus ne fonctionne pas. Comment itérer une variable php dans une chaîne echo?

27
Mechaflash

Les guillemets simples n'analyseront pas les variables PHP qu'ils contiennent. Utilisez des guillemets doubles ou un point pour étendre l’écho.

$variableName = 'Ralph';
echo 'Hello '.$variableName.'!';

OR

echo "Hello $variableName!";

Et dans votre cas:

$i = 1;
echo '<p class="paragraph'.$i.'"></p>';
++i;

OR

$i = 1;
echo "<p class='paragraph$i'></p>";
++i;
74
Derek

Utilisez toujours des guillemets doubles lorsque vous utilisez une variable à l'intérieur d'une chaîne et supprimez les autres guillemets exceptés ceux de début et de fin. Vous pouvez également utiliser les parenthèses comme ci-dessous pour trouver plus facilement vos variables dans les chaînes et les rendre plus propres.

$var = 'my variable';
echo "I love ${var}";

ou 

$var = 'my variable';
echo "I love {$var}";

Ci-dessus, je retournerais ce qui suit: J'aime ma variable

18
Jake

L'interpolation de variable ne se produit pas entre guillemets simples. Vous devez utiliser des guillemets doubles comme suit:

$i = 1
echo "<p class=\"paragraph$i\"></p>";
++i;
10
codaddict
echo '<p class="paragraph'.$i.'"></p>'

devrait faire l'affaire.

6
Ash Burlaczenko
echo '<p class="paragrah"' . $i . '">'
6
rogerlsmith
echo '<p class="paragraph'.$i.'"></p>';
4
Ali Nouman

Voici les 3 meilleurs moyens de le faire.

Première méthode:

$x = '+3';
echo "1+2$x";

Double Quotes (") vous permet de simplement passer la variable directement à l'intérieur.

Méthode deux:

$x = '+3';
echo '1+2'.$x;

Si vous ne voulez pas utiliser de guillemets doubles pour une raison quelconque, allez avec ceci . Le (.) Signifie simplement "Ajouter" fondamentalement. Donc si vous voulez ajouter quelque chose comme, 1 + 2 + 3 + 4 + 5 et votre variable au milieu, tout ce que vous devez faire est:

$x = '+3';
echo '1+2'.$x.'+4+5';

Méthode 3: (Ajout d'une variable directement à l'intérieur de la variable appelée)

$x = '+3';
$y = '+4';
$z = '+5';
echo "1+2${"x".$y.$z}";
Output: 1+2+3+4+5

Ici, nous ajoutons $y et $z à $x en utilisant le "."; Le {} Priorise est le travail qu’il contient avant de rendre la variable Non définie.

Ceci est personnellement une fonction très utile pour appeler des fonctions telles que:

//Add the Get request to a variable.
$x = $_GET['tool'];

//Edit: If you want this if to contain multiple $xresult's change the if's
//Conditon in the "()" to isset($get). Simple. Now just add $xresultprogram
//or whatever.
if($x == 'app') {
    $xresultapp = 'User requested tool: App';
}

//Somewhere down far in HTML maybe...

echo ${"xresult".$x};
//Note: doing ${"xresult".$_GET['tool']} directly wont work.
//I believe this is because since some direct non-echo html was loaded
//before we got to this php section it cant load cause it has already
//Started loading client side HTML and JS.

Ceci produirait l'outil demandé par l'utilisateur de $ xresultapp: App si ils avaient exemple.com?tool=app. Vous pouvez modifier avec une autre instruction pour définir ce qui se passe lorsqu'une requête est demandée, à part app e.t.c. Rappelez-vous que tout est sensible à la casse. Ainsi, s'ils demandent une App en majuscule, il ne produira pas $ xresultapp.

3
John123

Utilisez des guillemets doubles:

$i = 1;
echo "
<p class=\"paragraph$i\">
</p>
";
++i;
2
Neal

Tu peux essayer ça

$i = 1
echo '<p class="paragraph'.$i.'"></p>';
++i; 
0
user2155518