-1

次の行の2つの円記号の機能がわかりません...

echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";

このコードの:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Saying hello with style</title>
        <link rel="stylesheet" type="text/css" href="common.css" />
    </head>
    <body>
        <h1>Saying hello with style</h1>

<?php

function helloWithStyle( $font, $size ) {
    echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";
}

helloWithStyle( "Helvetica", 2 );
helloWithStyle( "Times", 3 );
helloWithStyle( "Courier", 1.5 );

?>

    </body>
</html>

2つの円記号を削除すると、「期待する、または;」が発生します。上に貼り付けたコード行でエラーが発生しました。どうしてこれなの?

ありがとうございました

4

4 に答える 4

2

バックスラッシュ\はエスケープ文字であり、文字列をエラーなしで出力できます。

二重引用符で文字列を開始すると"、次に二重引用符を使用するときに、文字列が効果的に終了します。'文字列を開始する一重引用符にも同じことが当てはまります。

二重引用符で文字列を開始する場合は、引用符をエスケープせずに文字列内で"一重引用符を使用できます'。その逆も可能です。

例としてスニペットを使用すると、これらはすべて同等です。

echo "<p style=\"font-family: $font; font-size: {$size}em;\">Hello, world!</p>";

echo '<p style="font-family: $font; font-size: {$size}em;">Hello, world!</p>';

echo "<p style='font-family: $font; font-size: {$size}em;'>Hello, world!</p>";

PHP:文字列のドキュメント

于 2013-03-14T21:14:13.350 に答える
1

これらは引用符をエスケープするため、実際の引用符としてカウントされません。そうしないと、文字列の末尾をマークし、HTML の残りの部分が PHP コードのように扱われ、明らかに機能しません。

ドキュメントを見る

于 2013-03-14T21:14:26.487 に答える
0

"マークは文字列の開始と終了を示すためです。文字列内に引用符を含める場合は、バックスラッシュ文字を使用してエスケープする必要があります。そうしないと、文字列の末尾として扱われ、その後のコンテンツがコーディング コンテキストで意味をなさないため、エラーが発生します。

于 2013-03-14T21:14:52.943 に答える
0

二重引用符のみを使用しているためです。\ はエスケープ文字であり、php が引用符の終わりであると想定せずに " を出力できるようにします。その行を記述するより良い方法は次のようになります。

  echo '<p style="font-family: $font; font-size: {$size}em;">Hello, world!</p>';
于 2013-03-14T21:15:11.400 に答える