[PHP 手冊] -String 字串(建議都用雙引號)
[PHP 手冊] –String 字串(建議都用雙引號)
資料來源: http://www.ithome.com/html/soft/72723.htm
code2html:http://tohtml.com/
一個字串 string 就是由一系列的字元組成,其中每個字元等同於一個位元組。這意味著 PHP 只能支持 256 的字元集,因此不支持 Unicode 。詳見字串類型詳解。
Note: string 最大可以達到 2GB。
語法
一個字串可以用 4 種方式表達:
- 單引號
- 雙引號
- heredoc 語法結構
- nowdoc 語法結構(自 PHP 5.3.0 起)
單引號
定義一個字串的最簡單的方法是用單引號把它包圍起來(字元 ‘)。
要表達一個單引號自身,需在它的前面加個反斜線(\)來轉義。要表達一個反斜線自身,則用兩個反斜線(\\)。其他任何方式的反斜線都會被當成反斜線本身:也就是說如果想使用其他轉義序列例如 \r 或者 \n,並不代表任何特殊含義,就單純是這兩個字元本身。
Note: 不像雙引號和 heredoc 語法結構,在單引號字串中的變數和特殊字元的轉義序列將不會被替換。
<?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} |
符合該正則運算式序列的是一個以十六進位元方式來表達的字元 |
和單引號字串一樣,轉義任何其他字元都會導致反斜線被顯示出來。PHP 5.1.1 以前,\{$var} 中的反斜線還不會被顯示出來。
用雙引號定義的字串最重要的特徵是變數會被解析,詳見變數解析。