php中有哪些字符串定界符

本篇內(nèi)容介紹了“php中有哪些字符串定界符”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有海陽免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦

PHP定界符

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

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

為什么使用定界符

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

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

php中字符串定界符有幾種

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

1、“Heredoc”定義方式

heredoc 句法結(jié)構(gòu):<<<。在該運(yùn)算符之后要提供一個標(biāo)識符,然后換行。接下來是字符串 string 本身,最后要用前面定義的標(biāo)識符作為結(jié)束標(biāo)志。

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

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

<?php
$str = <<<EOF
  url:
  http://bm7419.com/
EOF;
echo $str;
?>

php中有哪些字符串定界符

PHP 7.3.0 之后的基礎(chǔ) Heredoc 示例

<?php
// 無縮進(jìn)
echo <<<END
      a
     b
    c
\n
END;
// 4 空格縮進(jìn)
echo <<<END
      a
     b
    c
    END;

php中有哪些字符串定界符

如果結(jié)束標(biāo)識符的縮進(jìn)超過內(nèi)容的任何一行的縮進(jìn),則將拋出 ParseError 異常:

示例:結(jié)束標(biāo)識符的縮進(jìn)不能超過正文的任何一行

<?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

制表符也可以縮進(jìn)結(jié)束標(biāo)識符,但是,關(guān)于縮進(jìn)結(jié)束標(biāo)識符和內(nèi)容, 制表符和空格不能混合使用。在以上任何情況下, 將會拋出 ParseError 異常。 之所以包含這些空白限制,是因?yàn)榛旌现票矸涂崭駚砜s進(jìn)不利于易讀性。

示例:內(nèi)容(空白)和結(jié)束標(biāo)識符的不同縮進(jìn)

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

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

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

內(nèi)容字符串的結(jié)束標(biāo)識符后面不需要跟分號或者換行符。 例如,從 PHP 7.3.0 開始允許以下代碼:

示例:在結(jié)束標(biāo)識符后繼續(xù)表達(dá)式

<?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 結(jié)構(gòu)類似于雙引號字符串,Nowdoc 結(jié)構(gòu)是類似于單引號字符串的。Nowdoc 結(jié)構(gòu)很象 heredoc 結(jié)構(gòu),但是 nowdoc 中不進(jìn)行解析操作。這種結(jié)構(gòu)很適合用于嵌入 PHP 代碼或其它大段文本而無需對其中的特殊字符進(jìn)行轉(zhuǎn)義,與 SGML 的<![CDATA[ ]]> 結(jié)構(gòu)是用來聲明大段的不用解析的文本類似,nowdoc 結(jié)構(gòu)也有相同的特征。

一個 nowdoc 結(jié)構(gòu)也用和 heredocs 結(jié)構(gòu)一樣的標(biāo)記 <<<, 但是跟在后面的標(biāo)識符要用單引號括起來,即 <<<'EOT'。Heredoc 結(jié)構(gòu)的所有規(guī)則也同樣適用于 nowdoc 結(jié)構(gòu),尤其是結(jié)束標(biāo)識符的規(guī)則。

示例:

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

php中有哪些字符串定界符

<?php

/* 含有變量的更復(fù)雜的示例 */
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 結(jié)構(gòu)是在 PHP 5.3.0 中加入的。

“php中有哪些字符串定界符”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁名稱:php中有哪些字符串定界符
文章來源:http://bm7419.com/article26/pccecg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、營銷型網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、ChatGPT、外貿(mào)建站、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司