字串的寫法與數字不同,必須以一對單、雙或倒引號圍住,再加上特殊的跳脫字元,就是這一節所要介紹的內容。
字串以單、雙或倒引號圍住分別有不同的義意,請看底下的例子。
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