有時候會需要echo或print一段文字,但如果字串中又有變數該如何表達?最簡單的方式是用雙引號裡面直接帶變數,其次是可以使用.來連接變數。
簡易方法
範例(雙引號):
$str = "kumo";
echo "hello, I am $str."; // 輸出:hello, I am kumo.
範例(用.連接):
$str = "kumo";
echo "hello, I am".$str; // 輸出:hello, I am kumo.
如果引號中又有引號,可以用反斜線進行解析:
$str = "kumo";
echo "hello, I\'m $str."; // 輸出:hello, I'm kumo.
這樣大概解決了95%的情況,如果還有特殊情況,請參考以下所有表達方式。
PHP提供四種字串表達方式:
單引號
當字串包含html標籤時很適合用單引號,這樣就不用把html的雙引號改為單引號,如果要表達單引號本身則寫作\",表達反斜線本身則是\\,注意:它無法轉換變數與特殊字符。
// 包含單引號。輸出:hello, I'm kumo.
echo 'hello, I\'m kumo';
// 包含雙引號。輸出:hello, I am "kumo".
echo '<p class="text">hello, I am "kumo".</p>';
// 無轉換變數。輸出:I am $str.
echo 'I am $str';
// 無轉換特殊符號。輸出:I am kumo.\n
echo 'I am kumo.\n';
雙引號
雙引號的最大特色就是可以轉換變數與特殊符號,其餘都跟單引號相同,因此理論上雙引號比較萬用。
$str = "kumo";
echo "hello, I am \"$str\".\n nice to meet you.";
輸出結果:
hello, I am "kumo".
nice to meet you.
nice to meet you.
\n是換行的意思。
Heredoc 語法結構
使用<<<END作為開頭,用END結尾,中間可以任意填寫,包含單引號、雙引號皆可,可直接換行,接受空格與tab縮進,可直接轉換變數。注意:它無法轉義html標籤。
$str = "kumo";
echo <<<END
hello,
I'm "$str".
nice to meet you.
<p>goodbye</p>
END;
輸出結果:
hello,
I'm "kumo".
nice to meet you.
<p>goodbye</p>
Nowdoc 語法結構
使用<<<'EOD'作為開頭,用EOD結尾,中間可以任意填寫,包含單引號、雙引號皆可,可直接換行,接受空格與tab縮進,無法轉換變數或特殊字符。Nowdoc跟Heredoc差不多,差別只在於Nowdoc不解析內容,因此寫什麼就如實搬出,適合用於顯示code等。
$str = "kumo";
echo <<<'EOD'
hello,
I'm "$str".
nice to meet you.
<p>goodbye</p>
EOD;
輸出結果:
hello,
I'm "$str".
nice to meet you.
<p>goodbye</p>
以上就是PHP顯示字串、變數、特殊字符的四種方法,希望對各位有幫助:)
本文是否對您有幫助?