您好,登錄后才能下訂單哦!
本篇內容介紹了“php字符串有哪些表示方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
表示方法有:1、用單引號把字符包圍起來,語法“'字符'”;2、用雙引號把字符包圍起來,語法“"字符"”;3、 heredoc語法結構,語法“<<<EOS 字符 EOS”;4、nowdoc語法結構,語法“<<<'EOS' 字符 EOS”。
本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦
在PHP中有四種方式可以表示字符串,分別是單引號、雙引號、heredoc語法結構、nowdoc語法結構。
定義字符串的最簡單的方法,用單引號把字符包圍起來。使用單引號時,如果要表達單引號或者反斜杠需要使用反斜杠“\”進行轉義。單引號中只對這兩個字符進行轉義。在單引號中的變量和特殊字符的轉義序列不會被替換。單引號中的字符可以是多行的。
<?php $name = 'php'; @header("Content-type: text/html; charset=utf-8"); echo '最簡單的字符串表達形式'."\n"; echo '可以是 多行的'."\n"; echo '單引號"\'"和反斜杠"\\"需要使用"\"轉義'."\n"; echo '"\\"與"\"是一樣的'."\n"; echo '其他特殊字符如\n、\r和變量$name是不會轉換的'."\n"; ?>
如果字符被雙引號包圍,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 $name = 'php'; @header("Content-type: text/html; charset=utf-8"); echo "雙引號中單引號'不需要轉義反斜杠\也不需要轉義雙引號\"需要轉義\n"; echo "雙引號也可以是 多行的\n"; echo "\"\\\\\"與\"\\\"是一樣的,但是如果想要表示兩個反斜杠則需要使用四個反斜杠\n"; echo "還可以轉義其他一些特殊字符,如:\\\$轉義為\$,\\x41轉義為\x41\n"; echo "還可以解析變量,如:\\\$name解析為$name\n"; ?>
heredoc語法結構是使用<<<加開始標記和結束標記。在<<<之后提供一個標識符(此標識符的命名需要遵循PHP標簽的命名規則,即只能包含字母、數字以及下劃線,并且不能以數字開頭),然后換行,接下來是字符串本身, 最后用前面定義的標識符做為結束標記。
需要注意的是,開始標記后必須換行,結束標記所在行除了分號“;”外,不能有包含其他字符包括縮進,分號前后也不能有任何空白或制表符等。
在heredoc結構中,單引號、雙引號與回車符(\r)與單個反斜杠是不需要轉義的,如果要表示多個反斜杠則需要進行轉義,其他轉義字符與雙引號支持的轉義字符相同。heredoc結構類似于雙引號字符串。
heredoc結構可以用于變量初始化,也可以用在函數參數中傳遞數據。從PHP5.3起,如果heredoc中不包含變量,那么也可以用來初始化靜態變量和類中的屬性、常量。還可以通過雙引號聲明開始標識符。
<?php @header("Content-type: text/html; charset=utf-8"); $name = 'php'; function foo(){ static $str = <<<EOS \n \r \t \v \e \f \ \\ \\\\\ \$name \" \' \x41 \072 EOS; echo $str; } foo(); /* 含有變量的更復雜示例 */ class foo { const cons= <<<"EOD" cons EOD; var $test= <<<EOD "test" EOD; var $bar; function foo() { $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); echo foo::cons."\n"; echo <<<EOT heredoc中支持更復雜的格式如: \$foo->test=> $foo->test. {\$foo->bar[1]}=>{$foo->bar[1]}. EOT; ?>
nowdoc語法結構是PHP5.3引入的,與heredoc語法結構類似,使用<<<加開始標記和結束標記。但是在<<<后面的開始標識符必須用單引號包圍起來,heredoc的所有規則同樣適用于nowdoc結構,尤其是結束標識符的規則。
nowdoc結構類似于單引號字符串。nowdoc中不進行解析操作,適用于嵌入PHP代碼或大段文本而無需對其中的特殊字符進行轉義。與SGML中的<![CDATA[]]>結構聲明大段的不用解析的文本類似。
<?php @header("Content-type: text/html; charset=utf-8"); $name = 'php'; function foo(){ static $str = <<<'EOS' $name \n \r \t \v \e \f \ \\ \\\\\ \$name \" \' \x41 \072 EOS; echo $str; } foo(); /* 含有變量的更復雜示例 */ class foo { const cons= <<<'EOD' cons EOD; var $test= <<<'EOD' "test" EOD; var $bar; function foo() { $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); echo foo::cons."\n"; echo <<<'EOT' nowdoc中不支持復雜的格式如: \$foo->test=> $foo->test. {\$foo->bar[1]}=>{$foo->bar[1]}. EOT; ?>
“php字符串有哪些表示方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。