php中字串由什麼組成的

2022-12-15 18:01:20

在php中,字串就是連續的字元序列,由一系列的字元(數位,字母和符號)組成;字串的每個字元只佔用一個位元組。PHP定義字串的方法:1、用單引號進行定義,例「'abc'」;2、用雙引號進行定義,例「"abc"」;3、利用heredoc語法糖進行定義,它是一種在命令列shell和程式語言裡定義字串的方法;4、利用nowdoc語法糖進行定義。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

String 字串


字串(string)就是連續的字元序列,由一系列的字元(數位,字母和符號)組成;其中每個字元都等同於一個位元組。在php中只支援256字元集,不支援unicode。

php中的字串的實現方式是由位元組組成的陣列再加上一個指明緩衝區長度的整型組成。該資料型別並不包含如何將位元組轉化為字元的資訊,這些資訊都是由程式設計師來控制的。字串的組成沒有什麼限制,特別的是,其值為0即(null byte)的位元組可以處於字串的任何位置。還需要留意的是在相關的一些處理常式中,可能會把null位元組之後的資料全部忽略掉,這點在使用的時候需要特別留意。

Note:String最大可以達到2GB

字串的表達方式


1.單引號

定義一個字串最簡單的方式就是用單引號將字串內容包含起來。在單引號定義的字串中,變數和特殊字元的跳脫序列不會被替換。

$string_var = 'hello world';
        echo $string_var;//hello world
        echo "<br>";
        $string_var = 'hello \world';
        echo $string_var;//hello \world
        echo "<br>"; 
        $string_var2 = 'China $string_var';
        echo $string_var2;//China $string_var
        echo "<br>";
登入後複製

2.雙引號

如果是以雙引號將字串內容包含起來的方式定義,那麼需要注意: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解析。

$string_var = 'hello \world';
        echo $string_var;//hello \world
        echo "<br>"; 
        $string_var2 = 'China $string_var';
        echo $string_var2;//China $string_var
        echo "<br>";
        $string_var3 = "China $string_var";
        echo $string_var3;//China hello \world
        echo "<br>";
登入後複製

3.Heredoc結構

這種方式類似於xml定義格式,有一個開始標記和結束標記。heredoc的語法結構:

$var = <<< flag
……..here is your content
flag;
登入後複製

flag值可以根據自己的喜好來自定義,但必須要遵循php命名規範。另外需要注意的是在結束標識這行除了;外,不能包含其他字元。這就是說在識別符號和分號前面不能有任何的縮排,字元。識別符號和分號之間也是一樣。如果沒有遵循這條規則,php將認為該標識不是結束標識而將繼續尋找,如果在檔案結尾也沒有找到的話,php將會產生解析錯誤。

$str = <<<ENDFLAG
            Example of string
ENDFLAG;
        echo $str;//Example of string
        echo "<br>";
登入後複製

4.Nowdoc結構

nowdoc結構和heredoc的結構很相似,但是nowdoc中不進行解析操作,也就是說nowdoc和單引號定義的字串在一定意義來說是等價的。

nowdoc的結構和hereddoc的結構一樣使用標記<<<,區別是在<<<之後的識別符號要用單引號括起來(<<<’flag’)。

$str = <<<'ENDFLAG'
            Example of string
ENDFLAG;
        echo $str;//Example of string
        echo "<br>";
登入後複製

string可以當作字元陣列來使用,其起始索引為0,比如有一個字串$var=」hello world」,那麼我們可以通過$var[0]的形式來獲取或修改字串。

$string_var4 = "hello world!";
        echo $string_var4[0];//h
        echo "<br>";
        $string_var4[0] = "f";
        echo $string_var4;//fello world!
        echo "<br>";
登入後複製

推薦學習:《》

以上就是php中字串由什麼組成的的詳細內容,更多請關注TW511.COM其它相關文章!