一個字串 string 就是由一系列的字元組成,其中每個字元等同於一個位元組。
這意味著 PHP 只能支援 256 的字符集,因此不支援 Unicode。
string 最大可以達到 2GB。
語法
一個字串可以用4種方式表達:
- 單引號
- 雙引號
- heredoc 語法結構
- nowdoc 語法結構(自 php5.5.0 起)
單引號
定義給個字串的最簡單的方法是用單引號把它包圍起來。
要表達一個單引號自身,需要在它的前邊加個反斜線(\)來轉義。
要表達一個反斜線自身,則用兩個反斜線(\)。
其他任何方式的反斜線都會被當成反斜線本身;也就是說如果想使用其他轉義序列,例如 \r 或者 \n,並不代表任何特殊含義,就單純是這兩個字元本身。
<?php
echo 'this is a simple string';
// 可以錄入多行
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';
// 輸出: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';
// 輸出: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';
// 輸出: You deleted C:\*.*?
echo 'You deleted C:\*.*?';
// 輸出: This will not expand: \n a newline
echo 'This will not expand: \n a newline';
// 輸出: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>
雙引號
如果字串是包圍在雙引號(””)中,PHP 將對一些特殊的字元進行解析。
序列 | 含義 |
---|---|
\n |
換行(ASCII 字符集中的 LF 或 0x0A (10)) |
\r |
回車(ASCII 字符集中的 CR 或 0x0D (13)) |
\t |
水平製表符(ASCII 字符集中的 HT 或 0x09 (9)) |
\v |
垂直製表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起) |
\e |
Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起) |
\f |
換頁(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起) |
\\ |
反斜線 |
\$ |
美元標記 |
\" |
雙引號 |
\[0-7]{1,3} |
符合該正規表示式序列的是一個以八進位制方式來表達的字元 |
\x[0-9A-Fa-f]{1,2} |
符合該正規表示式序列的是一個以十六進位制方式來表達的字元 |
和單引號字串一樣,轉義任何其他字串都會導致反斜線被顯示出來。php5.1.1以前,\{$var}
中的反斜線還不會被顯示出來。
用雙引號定義的字串最重要的特徵是就是變數會被解析。
Heredoc 結構
第三種表達字串的方法是用 heredoc 句法結構:<<<
。在該運算子之後要提供一個識別符號,然後換行。接下來是字串 string 本身,最後要用前面定義的識別符號作為結束標誌。
結束時所引用的識別符號必須在該行的第一列,而且,識別符號的命名也要像其它標籤一樣遵守 PHP 的規則:只能包含字母、數字和下劃線,並且必須以字母和下劃線作為開頭。
本作品採用《CC 協議》,轉載必須註明作者和本文連結