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

PHP 第二節 數據類型之字符串類型

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

  • 單引號
  • 雙引號
  • heredoc 語法結構
  • nowdoc 語法結構 (自php 5.3.0以后)

單引號

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

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

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

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

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

Heredoc結構

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

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

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

如果不遵守該規則導致結束標簽不“干凈”,php將認為它不是結束標識符而繼續尋找。如果在文件結束前也沒有找到一個正確的結束標識符,php將會在最后一 行產生一個句法錯誤。

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

Nowdoc結構

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

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

變量解析

字符串用雙引號或heredoc結構定義時,其中的變 量將會被解析。

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

復雜的句法規則是在php4以后加入的,被花括號包圍的表達式是其明顯標記。

簡單句法規則

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

 

如果想要表達更復雜的結構,請用復雜句法規則。

 

復雜句法規則

 

復雜句法規則不是結構復雜而命名,而是因為它可以使用復雜的表達式。

任何想用在字符串中標量變量,數組變量或對象屬性都可使用這種方法。 只需簡單地像在字符串以外的地方那樣寫出表達式, 然后用花括號{}把它括起來。 由于 { 無法被轉義,只有 $ 要緊挨著 {才會被認出來,可以用 {/$ 來表達 {$

 

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

 

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

 

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

 

有用的函數和操作符

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

對于字符串的操作有很多有用的函數。

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

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

最后,可以參考 字符類型函數

 

轉換成字符串

 

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

 

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

 

一個 整數浮點數 被轉變為數字的字面樣式的字符串 (包括 浮點數中的指數部分),使用指數計數法的浮點數 (4.1E+6)也可轉變。

數組轉換成 字符串 "Array",因此, echoprint c無法顯示出該數組的值。如果顯示一個數組值,可以用 echo $arr['foo']這種結構,更多內容見下文。

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

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

NULL 總是被轉變成空的字符串。

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

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

字符串轉變成數字

當一個字符串被用在了一個數字的環境中,結果和類型如下:

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

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

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

php技術PHP 第二節 數據類型之字符串類型,轉載需保留來源!

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

主站蜘蛛池模板: 男生在床上脱美女 胸 | 好姑娘社区在线视频 | 国产亚洲福利精品一区 | 一二三四中文字幕在线看 | 久久草这里全是精品香蕉频线观 | 久久免费资源福利资源站 | 日本视频一区二区免费观看 | 午夜人妻理论片天堂影院 | 免费特黄一区二区三区视频一 | 老司机无码精品A | 我半夜摸妺妺的奶C了她软件 | 久久热这里面只有精品 | 污污内射在线观看一区二区少妇 | 香蕉97超级碰碰碰碰碰久 | 国色天香视频在线社区 | 小舞被爆操 | 久久综合视频网站 | 亚洲AV无码国产精品色在线看 | 四虎影视国产精品亚洲精品 | 青青青久草 | 国产精品成人网 | 伊人久久大香线蕉综合bd高清 | 精品丰满人妻无套内射 | 伊人久久大香线蕉综合电影 | 欧美506070| 羞羞影院男女爽爽影院尤物 | 亚洲国产精品VA在线看黑人 | 99re这里只有精品国产 | 手机在线免费观看毛片 | 99在线免费视频 | 娇妻中日久久持久久 | 亚洲精品成人 | 亚洲国产欧美另类 | 伊人最新网址 | 先锋影音av最新资源 | 男人狂躁进女人免费视频公交 | 在线A亚洲老鸭窝天堂AV高清 | 国产第81页| 久久婷婷五月综合色丁香花 | 卫生间被教官做好爽HH视频 | 99精品免费观看 |