一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP 第二節(jié) 數(shù)據(jù)類型之字符串類型

php中一個字符串可以通過下面的4種方式來定義:

  • 單引號
  • 雙引號
  • heredoc 語法結(jié)構(gòu)
  • nowdoc 語法結(jié)構(gòu) (自php 5.3.0以后)

單引號

定義一個字符串 的最簡單的方法是用單引號把它包圍起來 (標(biāo)點(diǎn)符號 ')。

如果想要輸出一個單引號,需在它的前面加個反斜線 (/)。在單引號前或在字符串的結(jié)尾處 想要輸出反斜線,輸入兩條 (//)。注意,如果在任何其它的字符前加了反斜線,反斜線將會被直接輸出。

Note: 不像雙引號heredoc語法結(jié)構(gòu), 在單引號字符串中的變量 和特殊含義的字符將不會被替換。

如果字符串是包圍在雙引號(")中, php將對一些轉(zhuǎn)義字符進(jìn)行解析,和單引號字符串一樣, 如果輸出轉(zhuǎn)義字符之外的字符,反斜線會被打印出來。 php5.1.1以前,/{$var} 中的反斜線還不會被顯示出來。

用雙引號定義的 字符串最重要的特征是變量會被執(zhí)行。

Heredoc結(jié)構(gòu)

第三種定義字符串的方法是用heredoc句法結(jié)構(gòu):<<<。在該提示 符后面,要定義個標(biāo)識符,然后是一個新行。接下來是字符串本身,最后要用前面定義的標(biāo)識符作為結(jié)束標(biāo)志。

結(jié)束時所引用的標(biāo)識符必須在一行的開始位置, 而且,標(biāo)識符的命名也要像其它標(biāo)簽一樣遵守php的規(guī)則:只能包含 字母、數(shù)字和下劃線,并且不能用數(shù)字和下劃線作為開頭。

Warning要注意的是結(jié)束標(biāo)識符這行除了 可能有一個分號(;)外,絕對不能包括 其它字符。這意味著標(biāo)識符不能縮進(jìn),分號的前后也不能有任何空白或tabs。更重要的是結(jié)束標(biāo)識符的前面必須是個被本地 操作系統(tǒng)認(rèn)可的新行標(biāo)簽,比如在UNIX和Mac OS X系統(tǒng)中是/n ,而結(jié)束標(biāo)識符(可能有個分號)的后面也必須跟個 新行標(biāo)簽。

如果不遵守該規(guī)則導(dǎo)致結(jié)束標(biāo)簽不“干凈”,php將認(rèn)為它不是結(jié)束標(biāo)識符而繼續(xù)尋找。如果在文件結(jié)束前也沒有找到一個正確的結(jié)束標(biāo)識符,php將會在最后一 行產(chǎn)生一個句法錯誤。

Heredoc結(jié)構(gòu)就象是沒有使用雙引號的雙引號字符串, 這就是說在heredoc結(jié)構(gòu)中引號不用被替換,但是上文中列出的字符 (/n等)也可使用。 變量將被替換,但在heredoc結(jié)構(gòu)中字符串表達(dá)復(fù)雜變量時,要格外小心。

Nowdoc結(jié)構(gòu)

就象heredoc結(jié)構(gòu)類似于雙引號字符串,Nowdoc結(jié)構(gòu)是類似于單引號字符串的。Nowdoc結(jié)構(gòu)很象heredoc結(jié)構(gòu),但是 nowdoc不進(jìn)行解析操作 。 這種結(jié)構(gòu)很適合用在不需要進(jìn)行轉(zhuǎn)義的php代碼和其它大段文本。與SGML的 <![CDATA[ ]]> 結(jié)構(gòu)是用來聲明大段的不用解析的文本類似,nowdoc結(jié)構(gòu)也有相同的特征。

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

變量解析

當(dāng)字符串用雙引號或heredoc結(jié)構(gòu)定義時,其中的變 量將會被解析。

這里共有兩種語法規(guī)則:一種簡單 規(guī)則,一種復(fù)雜規(guī) 則。簡單的句法規(guī)則是最常用和最方便的, 它可以用最少的代碼在一個字符串中加入變量, 數(shù)組 值,或 對象屬性。

復(fù)雜的句法規(guī)則是在php4以后加入的,被花括號包圍的表達(dá)式是其明顯標(biāo)記。

簡單句法規(guī)則

當(dāng)php解析器遇到一個美元符號 ($) , 它會和其它很多解析器一樣,去盡量形成一個合法的變量名。可以用花括 號來明確變量名的界線。

 

如果想要表達(dá)更復(fù)雜的結(jié)構(gòu),請用復(fù)雜句法規(guī)則。

 

復(fù)雜句法規(guī)則

 

復(fù)雜句法規(guī)則不是結(jié)構(gòu)復(fù)雜而命名,而是因?yàn)樗梢允褂脧?fù)雜的表達(dá)式。

任何想用在字符串中標(biāo)量變量,數(shù)組變量或?qū)ο髮傩远伎墒褂眠@種方法。 只需簡單地像在字符串以外的地方那樣寫出表達(dá)式, 然后用花括號{}把它括起來。 由于 { 無法被轉(zhuǎn)義,只有 $ 要緊挨著 {才會被認(rèn)出來,可以用 {/$ 來表達(dá) {$

 

存取和修改字符串中的字符

 

字符串中的字符可以通過一個以0為開始的,用類似數(shù)組結(jié)構(gòu)中的方括號包含對應(yīng)的數(shù)字來查找和修改,比如 $str[42], 可以把 字符串想像數(shù)組 。 函數(shù) substr()substr_replace()可以用來實(shí)現(xiàn)多于一個字符 的情況。

 

Warning方括號中的數(shù)字超出范圍將會產(chǎn)生空白。非整數(shù)類型被轉(zhuǎn)換成整數(shù),非整數(shù)類型轉(zhuǎn)變成整數(shù),非法類型會產(chǎn)生一個 E_NOTICE級別錯誤,負(fù)數(shù)在寫入時會產(chǎn)生一個E_NOTICE,但讀 取的是空字符串。被指定的字符串只有第一個字符可用,空字符串用指定為空字節(jié)。

 

有用的函數(shù)和操作符

字符串可以用'.' (點(diǎn)) 操作符連接起來, 注意 '+' (加號) 操作符沒有 這個功能。 

對于字符串的操作有很多有用的函數(shù)。

可以參考 字符串函數(shù) 了解大部分函數(shù), 高級的查找&替換功能可以參考 正則表達(dá)式函數(shù)Perl類型的正則 表達(dá)式函數(shù)

另外還有URL字符串的函數(shù), 也有加密/解密字符串的函數(shù)。 (mcryptmhash).

最后,可以參考 字符類型函數(shù)

 

轉(zhuǎn)換成字符串

 

一個值可以通過在其前面加上(string)或用strval()函數(shù)來轉(zhuǎn)變成 字符串。 在一個需要字符串的表達(dá)式中,字符串會自動轉(zhuǎn)變,比如在使用函數(shù) echoprint 時, 或在一個變量和一個 字符串 進(jìn)行比較時,就會發(fā)生這種轉(zhuǎn)變 類型類型轉(zhuǎn)換 可以更好的解釋下面的事情,也可參考函 數(shù) settype()

 

一個boolean TRUE 值被轉(zhuǎn)換成 字符串"1"Boolean FALSE 被轉(zhuǎn)換成"" (空的字符串)。 這種轉(zhuǎn)變可以在 boolean字符串 之間往返進(jìn)行。

 

一個 整數(shù)浮點(diǎn)數(shù) 被轉(zhuǎn)變?yōu)閿?shù)字的字面樣式的字符串 (包括 浮點(diǎn)數(shù)中的指數(shù)部分),使用指數(shù)計數(shù)法的浮點(diǎn)數(shù) (4.1E+6)也可轉(zhuǎn)變。

數(shù)組轉(zhuǎn)換成 字符串 "Array",因此, echoprint c無法顯示出該數(shù)組的值。如果顯示一個數(shù)組值,可以用 echo $arr['foo']這種結(jié)構(gòu),更多內(nèi)容見下文。

php 4中對象被轉(zhuǎn)換成 字符串 "Object", 為了調(diào)試原因需要打印出對象的值,方法見正文。為了得到對象的類的名稱,可以用 get_class() 函數(shù)。 在php5中, 可以用 __toString

資源總會被轉(zhuǎn)變成"Resource id #1"這種結(jié)構(gòu)的字符串 , 其中的 1php分配給該資源的獨(dú)特數(shù)字。不用過多關(guān)注這種結(jié)構(gòu),它馬上要轉(zhuǎn)變了。為了得到一個 resource類型,可以用函數(shù) get_resource_type()

NULL 總是被轉(zhuǎn)變成空的字符串。

如上面所說的,直接把數(shù)組對象資源 轉(zhuǎn)換成 字符串 不會得到超出其自身的更多信息。可以使用函數(shù) print_r()var_dump() 列出這些類型的內(nèi)容。

大部分的php值可以轉(zhuǎn)變成 字符串s 來長期儲存,這被稱作串行化,可以用函數(shù) serialize() 來實(shí)現(xiàn)。 如果php引擎設(shè)定支持 WDDXphp值也可儲存成XML格式。

字符串轉(zhuǎn)變成數(shù)字

當(dāng)一個字符串被用在了一個數(shù)字的環(huán)境中,結(jié)果和類型如下:

如果字符串沒有包含 '.','e'或'E' 并且數(shù)字值符合整數(shù)類型的限定 ( php_INT_MAX定義的), 這個 字符串 可被認(rèn)定是一個 integer, 在其它情況下被認(rèn)定為一個float

字符串的開始部分給定了它的值,如果 字符串 以合法的數(shù)字開始,這個數(shù)字可直接使用。 否則,值就是 0 (零)。 合法數(shù)值由符號,后面跟著一個或多個數(shù)字(可能有個小數(shù)點(diǎn)),再跟著可選的指數(shù)符號如'e' 或 'E',后面跟著一個或多個數(shù)字。

不要想像在C語言中的那樣,通過一個整數(shù)轉(zhuǎn)換得到相應(yīng)字符,使用函數(shù) ord()chr() 實(shí)現(xiàn)ASCII碼和字符間的轉(zhuǎn)換。

php技術(shù)PHP 第二節(jié) 數(shù)據(jù)類型之字符串類型,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久只这里是精品66 | 美女扒开下面无遮挡免费视频 | 日本高清一区二区三区不卡免费 | 五月婷香| 伊人免费在线 | 青草国产在线视频 | 伊人99在线观看 | 欧洲一卡2卡三卡4卡免费观看 | 一二三四视频在线社区7 | 亚洲国产成人在线 | 一区二区国产在线播放 | 国语对白精品视频在线观看 | 91免费在线看 | 伊人狠狠色j香婷婷综合 | 韩国欧洲一级毛片免费 | 成人在色线视频在线观看免费大全 | 床戏免费网站 | 欧美猛妇色xxxxxbbbb | 亚洲图片另类 | 色哟哟在线免费观看 | 欧美一级特黄特黄做受 | 好吊妞免费视频 | 美女色影院| 国产大臿蕉香蕉大视频女 | 午夜在线视频免费观看 | 69xxxxx19日本人 | 五月婷婷激情六月 | 国产91免费视频 | 国产美乳在线观看 | 韩国一级毛片在线高清免费 | 免费观看成人www精品视频在线 | 亚洲国产精品一区二区三区在线观看 | 欧美日韩国产另类一区二区三区 | 亚洲国产精品激情在线观看 | 在线免费精品视频 | 在线观看国产黄色 | 欧美日韩一区二区亚洲 | 久久97久久97精品免视看清纯 | 激情五月在线 | 中文字幕一区二区三区不卡 | 欧美特黄特色aaa大片免费看 |