天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

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

單引號

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

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

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

如果字符串是包圍在雙引號(")中, php將對一些轉(zhuǎ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)識符不能縮進,分號的前后也不能有任何空白或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不進行解析操作 。 這種結(jié)構(gòu)很適合用在不需要進行轉(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ù)雜而命名,而是因為它可以使用復(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()可以用來實現(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ù)和操作符

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

對于字符串的操作有很多有用的函數(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 時, 或在一個變量和一個 字符串 進行比較時,就會發(fā)生這種轉(zhuǎn)變 類型類型轉(zhuǎn)換 可以更好的解釋下面的事情,也可參考函 數(shù) settype()

 

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

 

一個 整數(shù)浮點數(shù) 被轉(zhuǎn)變?yōu)閿?shù)字的字面樣式的字符串 (包括 浮點數(shù)中的指數(shù)部分),使用指數(shù)計數(shù)法的浮點數(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分配給該資源的獨特數(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() 來實現(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ù)點),再跟著可選的指數(shù)符號如'e' 或 'E',后面跟著一個或多個數(shù)字。

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

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

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

主站蜘蛛池模板: 凹凸精品视频分类视频 | 十分钟免费观看大全视频 | 各种肉黄浪荡故事集 | yellow视频免费观看高清在线 | 在线涩涩免费观看国产精品 | 人人草人人草 | 日本高清无人区影院 | 欧美日韩精品一区二区三区高清视频 | 午夜福利小视频400 午夜福利网国产A | 亚洲国产在线视频中文字 | 99国内精品久久久久久久清纯 | 久啪久久全部视频在线 | 国产99精品在线观看 | 日韩在线看片中文字幕不卡 | 开心成人社区 | 宝贝乖女好紧好深好爽老师 | 欧美亚洲色帝国 | 日韩a在线看免费观看视频 日韩a视频在线观看 | 春水福利app导航 | 亚洲中文字幕无码一久久区 | 中文在线观看 | 蜜桃日本免费观看MV | 久久国产av偷拍在线 | 世界上第一个得抑郁症的人是谁 | 老板吻我下身好爽到高潮 | 亚洲黄色高清视频 | 花蝴蝶hd免费| 欧美videosgratis杂交 | 国产亚洲精品精品精品 | 99爱视频在线观看 | 中文中幕无码亚洲视频 | 青青久久国产 | 国产午夜精AV在线麻豆 | 超碰在线线公开免费视频 | 久久强奷乱码老熟女 | 最近中文字幕完整版免费高清 | 黑丝女仆恋上我 | 国产精品第九页 | 国内精品伊人久久久影院 | 伊人不卡久久大香线蕉综合影院 | 国产一区二区无码蜜芽精品 |