« 41. 數字的寫法 | (回到Blog入口) | 43. here doc syntax »

42. 字串的寫法

jollen 發表於 October 27, 2006 3:50 PM

字串的寫法與數字不同,必須以一對單、雙或倒引號圍住,再加上特殊的跳脫字元,就是這一節所要介紹的內容。

字串以單、雙或倒引號圍住分別有不同的義意,請看底下的例子。

1. 單引號

'An apple a day keeps the docter away.'

當字串出現 ' 符號時,必須加上 \ 斜線:

'I'm Jollen' 應改成 'I\'m Jollen' 才對,其中 \' 即稱為跳脫字元 (escape character)。

2. 雙引號

以雙引號圍住的字串 PHP 會對該字串做 variable interpolation 的動作,亦即做變數的最代,例如:

$name = "Jollen"; echo 'Name: $name'; echo "Name: $name";

執行結果為:

Name: $name Name: Jollen

在雙引號裡的字串如果有 $ (dollar sign),只要改成跳脫字元的寫法即可:

$total = 12000 echo "Total: \$ $total"; //輸出 Total: $ 12000

在做 variable interpolation 時,變數名稱是以一個以上空格做為界線,例如:

<?php $n_file = 5;
if ($n_file == 1) { echo "There are $n_file."; } else { echo "There are $n_files."; } ?>

當 $n_file 不為 1 時,"There are $n_files." PHP 所看到的變數為 $n_files,而不是正確的 $n_file,所以必須改成:

<?php $n_file = 5;
if ($n_file == 1) { echo "There are $n_file."; } else { echo "There are {$n_file}s."; } ?>

還有另外一個重點就是,單引號內的雙引號,或是雙引號內的單引號都視為有效字元,不需使用跳脫字元,例如:

echo "I'm a happy bird."; echo 'I\'m a happy "bird"!';

輸出結果為:

I'm a happy bird. I'm a happy "bird"!

表-PHP 的跳脫字元

跳脫字元 用途 \n 換行 \r Carriage return (游標回頭) \t Tab \$ Dollar sign \" 符號:" \\[0-7]{1,3} 八進位數值 (符合該 regular expressin 者) \x[0-9A-Fa-f]{1,2} 十六進位數值 (符合該 regular expressin 者) \\ 符號:\

3. 反引號

利用反引號可以執行 UNIX 下的命令,並傳回執行結果。例如:

echo `ls -l *.txt`;

表示將 ls -l *.txt 命令的執行結果輸出,以反引號圍住的字串為要執行的 UNIX 指令。

請看底下範例:

<html> <head> <title>反引號範例</title> </head>
<body> <pre> <?php $files = `ls -l`; echo ereg_replace("\n", "<br>\n", $files); //處理成 HTML 的換行 ?> </pre> </body> </html>

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org