web-dev-qa-db-ja.com

php-エコー文字列に変数を挿入します

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

エコーされた文字列に変数を挿入しようとしています。上記のコードは機能しません。 php変数をエコー文字列に反復するにはどうすればよいですか?

29
Mechaflash

単一引用符は、その中のPHP変数を解析しません。二重引用符を使用するか、ドットを使用してエコーを拡張します。

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

OR

echo "Hello $variableName!";

そしてあなたの場合:

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

OR

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

文字列内で変数を使用するときは常に二重引用符を使用し、開始および終了以外の二重引用符をバックスラッシュします。また、次のような括弧を使用して、文字列内の変数を見つけやすくし、見た目をきれいにすることもできます。

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

または

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

上記は以下を返します:変数が大好きです

21
Jake

単一引用符では変数補間は行われません。次のように二重引用符を使用する必要があります。

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

トリックを行う必要があります。

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

これを行うための3つの最良の方法があります。

方法1:

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

二重引用符( ")を使用すると、変数をその中に直接渡すことができます。

方法2:

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

何らかの理由で二重引用符を使用したくない場合、これは基本的に「追加」を意味します。したがって、1 + 2 + 3 + 4のようなものを追加したい場合は、 +5で、変数を中央に配置するだけです:

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

方法3:(呼び出された変数内に変数を直接追加する)

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

ここで$yおよび$zから$xを使用して"."; {}未定義の変数をレンダリングする前に、内部の作業を優先します。

これは個人的には次のような関数を呼び出すのに非常に便利な関数です

//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.

これは$ xresultappを出力します。ユーザーがツールを要求します:example.com?tool=appを実行した場合はアプリです。elseステートメントを使用して変更できます。大文字と小文字が区別されるため、大文字でアプリをリクエストした場合、$ xresultappは出力されません

3
John123

二重引用符を使用します。

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

これを試すことができます

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