程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php學習零散筆記—字符串分割、fetch函數和單雙引號。,fetch雙引號

php學習零散筆記—字符串分割、fetch函數和單雙引號。,fetch雙引號

編輯:關於PHP編程

php學習零散筆記—字符串分割、fetch函數和單雙引號。,fetch雙引號


1 字符串分割——split()函數和preg_split()函數

split — 用正則表達式將字符串分割到數組中——貌似PHP5.3以上已不贊成使用
array split ( string $pattern , string $string [, int $limit ] )

preg_split — 通過一個正則表達式分隔字符串

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

相同點:都是用正則表達式來分割字符串。
split()用起來更簡單,比如分割"2008-12-16 15:48:12",split可以這麼寫split(['- :'])
而preg_split()要復雜些,就得這麼寫preg_split("/[\s-:]/")
原因是:split()只支持POSIX風格的正則表達式,而preg_split只支持Perl風格的正則表達式
POSIX風格要比Perl風格的簡單,但它不是二進制安全的

對了,還有個explode(),和上面兩個函數不同,它是用字符串來分割字符串。

array explode ( string $delimiter , string $string [, int $limit ] )

使用一個字符串分割另一個字符串

注:網上有好多二進制安全的解釋,我感覺下面這個解釋對於理解上面那句話有幫助:

二進制安全的函數只關心二進制化的字符串,不關心字符串的具體格式,它只會嚴格的按照二進制的數據進行存取,不會以某種特殊格式解析數據。

2 mysqli::fetch_array 和mysqli::fetch_row的區別

 mysqli_result::fetch_row() 

從結果集中取得一行作為枚舉數組

mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] ) 

從結果集中取得一行作為關聯數組,或數字數組,或二者兼有

手冊說兩者性能貌似沒有太大的區別,前者是後者的增強版。

3 單引號和雙引號
php的兩種字符串類型,單引號和雙引號。
單引號的字符串是純文本(真正的文本),它會不經修改而直接發送給浏覽器,不管是變量名稱還是其它任何文本。
雙引號的字符串,php會嘗試計算雙引號字符串,其中的變量名稱將被變量值所代替。
在這裡,變量、字符串、文本和原始數據的概念不能混淆:
變量是表示數據的符號,變量用變量名稱表示,表示數據的符號
而單引號的字符串則是文本,本身(字面值)就是原始數據
關鍵是理解文本和變量的區別,文本是數據,變量是數據的符號。

可以看看《PHP和MySQL Web開發(原書第4版)》中文版第12頁對於字符串的介紹。

參考:

《PHP和MySQL Web開發(原書第4版)》中文版第12頁,Luke Welling & Laura Thomson著

php二進制字符串的含義 http://www.lofter.com/postentry?from=search&permalink=139418_34c583

知乎:二進制安全是什麼意思? http://www.zhihu.com/question/28705562

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved