PHP コード:
$name = 'click here';
echo '<a href="http://example.net/some.php" class="menu">$name</a>';
ここで私は「ここをクリック」を期待していますが、私の出力は次のとおりです。
$name
PHP コード:
$name = 'click here';
echo '<a href="http://example.net/some.php" class="menu">$name</a>';
ここで私は「ここをクリック」を期待していますが、私の出力は次のとおりです。
$name
ステートメント全体を二重引用符echo
で囲み、HTML で引用符をエスケープするか、連結演算子を使用します。.
二重引用符の使用:
"<a href=\"http://example.net/some.php\" class=\"menu\">$name</a>";
連結演算子の使用
'<a href="http://example.net/some.php" class="menu">'.$name.'</a>';
二重引用符を使用すると、PHP は文字列内のすべての変数を評価します (変数をその内容に置き換えます)。ただし、これを行うには、内部の二重引用符をエスケープして\"
、PHP が文字列の末尾と混同しないようにする必要があります。
連結演算子を使用して、実際には 3 つの異なる文字列、開始タグ、変数の内容、および終了タグを作成し、 を使用してそれらを結合して、.
に送信される 1 つの完全な文字列を作成しecho
ます。
文字列に関するマニュアル参照 http://php.net/manual/en/language.types.string.php
基本は " (ダブルクォーテーション) 内は評価され、' (シングルクォーテーション) 内は評価されません。
したがって、コードにはいくつかのオプションがあります
一重引用符を二重引用符に置き換え、埋め込まれた二重引用符を \ でエスケープします
echo "<a href=\"http://example.net/some.php\" class=\"menu\">$name</a>";
埋め込まれた二重引用符を一重引用符に置き換えることもできます (html は気にしない、html5 についてはわかりません)。
echo "<a href='http://example.net/some.php' class='menu'>$name</a>";
また、printf を実行することもできます。これは、%s = string を値 $name に置き換えます。
printf('<a href="http://example.net/some.php" class="menu">%s</a>", $name);