站長資訊網
        最全最豐富的資訊網站

        php中字符串定界符有幾種

        php字符串定界符有兩種:1、heredoc定界符,在“<<<”運算符之后要提供一個標識符,然后換行,接下來是字符串本身,最后要用前面定義的標識符作為結束標志。2、nowdoc定界符,在“<<<”運算符之后要提供一個被單引號括起來的標識符,然后換行,接下來是字符串本身,最后要用前面定義的標識符作為結束標志。

        php中字符串定界符有幾種

        php入門到就業線上直播課:進入學習
        API 文檔、設計、調試、自動化測試一體化協作工具:點擊使用

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

        PHP定界符

        PHP定界符是從PHP4.0版本開始支持的。

        定界符用于定義一段格式化的文本,格式化是指文本中的格式將被保留,所以文本中不需要使用定義符。在使用時后接一個標識符,然后是格式化的文本(即字符串),最后使用同樣的標識符結束字符串,這段格式化的文本也可以稱為長字符串。

        為什么使用定界符

        因為PHP是一個Web編程語言,在編程過程中難免會遇到使用echo來輸出大段的HTML代碼或者JavaScript腳本的情況。如果用傳統字符串輸出的話,肯定要使用大量的轉義字符來對字符串中的特殊字符進行轉義,比如單引號‘’、雙引號“”等等,難免會出現語法錯誤。

        而PHP中定界符能夠定義一段較長的字符串,并且可以按照原樣輸出在其內部的東西,包括換行、縮進等格式,在定界符中任何特殊字符都不需要轉義,而且定界符中的變量也能被解析。這也是為什么 PHP 要引入定界符的原因之一。

        php中字符串定界符有幾種

        PHP中有兩種定界符:heredoc(雙引號定界符)和nowdoc(單引號定界符)

        1、“Heredoc”定義方式

        heredoc 句法結構:<<<。在該運算符之后要提供一個標識符,然后換行。接下來是字符串 string 本身,最后要用前面定義的標識符作為結束標志。

        結束標識符可以使用空格或制表符(tab)縮進,此時文檔字符串會刪除所有縮進。 在 PHP 7.3.0 之前的版本中,結束時所引用的標識符必須在該行的第一列。

        而且,標識符的命名也要像其它標簽一樣遵守 PHP 的規則:只能包含字母、數字和下劃線,并且必須以字母和下劃線作為開頭。

        <?php $str = <<<EOF   url:   https://www.php.cn/ EOF; echo $str; ?>

        php中字符串定界符有幾種

        PHP 7.3.0 之后的基礎 Heredoc 示例

        <?php // 無縮進 echo <<<END       a      b     c n END; // 4 空格縮進 echo <<<END       a      b     c     END;

        php中字符串定界符有幾種

        如果結束標識符的縮進超過內容的任何一行的縮進,則將拋出 ParseError 異常:

        示例:結束標識符的縮進不能超過正文的任何一行

        <?php echo <<<END   a  b c    END;

        以上例程在 PHP 7.3 中的輸出:

        PHP Parse error:  Invalid body indentation level (expecting an indentation level of at least 3) in example.php on line 4

        制表符也可以縮進結束標識符,但是,關于縮進結束標識符和內容, 制表符和空格不能混合使用。在以上任何情況下, 將會拋出 ParseError 異常。 之所以包含這些空白限制,是因為混合制表符和空格來縮進不利于易讀性。

        示例:內容(空白)和結束標識符的不同縮進

        <?php // 以下所有代碼都不起作用。 // 正文(空格)和結束標記(制表符),不同的縮進 {     echo <<<END      a         END; } // 在正文中混合空格和制表符 {     echo <<<END         a      END; } // 在結束標記中混合空格和制表符 {     echo <<<END           a          END; }

        以上例程在 PHP 7.3 中的輸出:

        PHP Parse error:  Invalid indentation - tabs and spaces cannot be mixed in example.php line 8

        內容字符串的結束標識符后面不需要跟分號或者換行符。 例如,從 PHP 7.3.0 開始允許以下代碼:

        示例:在結束標識符后繼續表達式

        <?php $values = [<<<END a   b     c END, 'd e f']; var_dump($values);

        以上例程在 PHP 7.3 中的輸出:

        array(2) {   [0] =>   string(11) "a   b     c"   [1] =>   string(5) "d e f" }

        2、“Nowdoc”定義方式

        就象 heredoc 結構類似于雙引號字符串,Nowdoc 結構是類似于單引號字符串的。Nowdoc 結構很象 heredoc 結構,但是 nowdoc 中不進行解析操作。這種結構很適合用于嵌入 PHP 代碼或其它大段文本而無需對其中的特殊字符進行轉義,與 SGML 的<![CDATA[ ]]> 結構是用來聲明大段的不用解析的文本類似,nowdoc 結構也有相同的特征。

        一個 nowdoc 結構也用和 heredocs 結構一樣的標記 <<<, 但是跟在后面的標識符要用單引號括起來,即 <<<'EOT'。Heredoc 結構的所有規則也同樣適用于 nowdoc 結構,尤其是結束標識符的規則。

        示例:

        <?php echo <<<'EOD' Example of string spanning multiple lines using nowdoc syntax. Backslashes are always treated literally, e.g. \ and '. EOD;

        php中字符串定界符有幾種

        <?php  /* 含有變量的更復雜的示例 */ class foo {     public $foo;     public $bar;      function __construct()     {         $this->foo = 'Foo';         $this->bar = array('Bar1', 'Bar2', 'Bar3');     } }  $foo = new foo(); $name = 'MyName';  echo <<<'EOT' My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should not print a capital 'A': x41 EOT; ?>

        php中字符串定界符有幾種

        注意:

        Nowdoc 結構是在 PHP 5.3.0 中加入的。

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产内地精品毛片视频| 国产日韩高清三级精品人成| 97精品国产自在现线免费观看| 欧美久久亚洲精品| 久久99精品国产99久久6男男| 亚洲欧美日韩国产成人精品影院| 国产精品户外野外| 国产精品扒开腿做爽爽爽视频| 亚洲欧洲精品成人久久曰影片 | 国产精品亚洲美女久久久| 精品人人妻人人澡人人爽人人| 亚洲国产精品成人午夜在线观看| 99热精品毛片全部国产无缓冲| 国产精品怡红院永久免费| 久久综合久久自在自线精品自| 欧美精品成人3d在线| 国产精品无码无卡无需播放器| 欧美极品欧美精品欧美视频| 成人午夜精品网站在线观看| 免费精品无码AV片在线观看| 在线精品动漫一区二区无广告| 日本Aⅴ大伊香蕉精品视频| 精品久久久久久无码免费| 国产精品成人小电影在线观看| 91精品啪在线观看国产电影| 精品无人区麻豆乱码1区2区| 99精品视频在线| 国产精品久久久久久久久免费| 国产精品三级在线观看无码| 久久精品中文闷骚内射| 亚洲国产一成人久久精品| 中文字幕精品久久| 亚洲精品视频免费观看| 亚洲精品成人a在线观看| 亚洲精品网站在线观看不卡无广告| 日韩精品无码永久免费网站 | 久久精品国产免费一区| 国产精品久久久福利| 国产精品福利网站导航| 午夜精品美女自拍福到在线| 99精品国产福利在线观看|