4、字符串
一個字符串就是由一系列的字符組成。一個字符佔一個字節,一個字節8位,因此一個字節只有2^8 256個不一樣的值。字符串的長度能夠很長。。。你能夠當成是無限長吧,不過事實上是和機器的內存有關的。如下的字符串定義都是正確的: php
01 |
$str1 = '我是\'字"符\n串1';//單引號 |
02 |
$str2 = "我是\\\"字'符\n串2$str1\\";//雙引號 |
實驗證實使用heredoc或者nowdoc定義的時候<<<後面的字符是能夠自定義的,結尾要同樣,可是有個要求就是分隔符後面不能有任何字符,包括空格,因此真正的字符串從下一行開始,而後結束標記必須是另起一行,前面也不能有任何字符,不能縮進。另外上例中也說明了怎麼使用反斜杆來打印雙引和單引號,以及其餘特殊用法,稍微記一下就能夠了。雙引號能夠直接引用如str2。雙引號定義會替換下表中的特殊字符 mysql
Sequence |
Meaning |
\n |
換行 (LF or 0x0A (10) in ASCII) |
\r |
回車 (CR or 0x0D (13) in ASCII) |
\t |
水平方向的 tab(HT or 0×09 (9) in ASCII) |
\v |
豎直方向的 tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5) |
\f |
換頁 (FF or 0x0C (12) in ASCII) (since PHP 5.2.5) |
\\ |
反斜線 |
\$ |
美金dollar標記 |
\」 |
雙引號 |
\[0-7]{1,3} |
符合該表達式順序的字符串是一個八進制的字符 |
\x[0-9A-Fa-f]{1,2} |
符合該表達式順序的字符串是一個十六進制的字符 |
其中str2中的\n被替換成了換行,可是str1中並無原樣輸出。能夠這樣理解heredoc就是雙引號,nowdoc就是單引號。只是其中的雙引號單引號不用用\轉義了。 另外注意一點:Nowdoc結構是在PHP 5.3.0中加入的。因此早起版本的php會出錯。 在雙引號中替換變量的時候要注意變量名是否一致,可使用{$b}來要求php僅把$b當成變量。能夠試下下面的代碼 sql
6 |
var_dump($str1);//我是字符串ab |
7 |
var_dump($str2);//我是字符串acb |
字符串可使用$str[數字]來取字符串中的字符,數字從0開始。 一個boolean TRUE 值被轉換成 字符串「1″。 Boolean FALSE 被轉換成「」 (空的字符串)。 這種轉變能夠在boolean 和 字符串 之間往返進行。 一個 整數 或 浮點數 被轉變爲數字的字面樣式的字符串(包括浮點數中的指數部分),使用指數計數法的浮點數 (4.1E+10)也可轉變。 數組轉換成 字符串「Array」 對象被轉換成 字符串「Object」 資源轉變成字符串「Resource id #1″這種結構的 NULL老是被轉變成空的字符串。 因此打印數組對象和資源的時候能夠是用var_dump或者print_r而不是echo print 數組
5、對象
對象通常須要事先定義。要實例化一個對象用new,請看以下代碼 函數
若是將一個對象轉換成對象,它將不會有任何變化。若是其它任何類型的值被轉換成對象,將會實例化一個內置類 stdClass 的對象。若是該值爲 NULL,則新的實例爲空。數組轉換成對象將使鍵名成爲屬性名並具備相對應的值。對於任何其它的值,名爲 scalar的成員變量將包含該值。 google
6、資源類型
資源是一種特殊變量,保存了到外部資源的一個引用。mysql查詢結果就是一種典型的資源類型。資源沒有轉換的意義。資源的釋放由系統完成,mysql資源除外。經過get_resource_type()能夠獲得資源來的類型。 spa
7、null
特殊的 NULL 值表示一個變量沒有值。NULL 類型惟一可能的值就是 NULL,大小寫不敏感NULL和null是同樣的。下列狀況將被視爲null: .net
實際使用中能夠用is_null()函數來判斷一個變量是否是null; scala
8、數組
PHP 中的 數組 其實是一個把values關聯到keys的有序映射。定義方法 code
4 |
// 鍵(key) 但是是一個 整數(integer) 或 字符串(string)字符串必須用引號引發來. |
5 |
// 值(value) 能夠是任意以上類型的值包括數組 |
若是對給出的值沒有指定鍵名,則取當前最大的整數索引值,而新的鍵名將是該值加一。若是指定的鍵名已經有了值,則該值會被覆蓋。 若是給一個當前最大鍵名是負值的數組添加一個新值,則新生成的的索引將爲零(0)。要使用數組的值只要使用下標就能夠了,數字下標直接使用,字符串下標要加引號。試試下面的代碼吧
1 |
var_dump(array(5 => 43, 32, 56, "b" => 12)); |
2 |
var_dump(array(-3 => 43, 32, 56, "b" => 12)); |
3 |
$arr = array(0=>'百度',"x"=>'google'); |
要修改一個數組能夠直接給某個key設置賦值就行了好比上面最後兩行,若是要給數組添加沒有key的新值能夠這樣作$arr[] = ’1′;若是 $arr 還不存在,將會新建一個。這也是一種定義數組的替換方法。要改變一個值,只要給它賦一個新值。若是要刪除一個鍵名/值對,要對它用 unset()。
遍歷數組使用foreach,其中key能夠有野能夠沒有,看程序需不須要。試試下面的代碼
1 |
$arr = array(1,2,3,4,5); |
2 |
foreach($arr as $key=>$value){ |
3 |
var_dump($key);//key能夠自定義 |
4 |
var_dump($value);//value也能夠自定義,這是個簡單的遍歷 |
數組博大精深,在php中會常常用到。
本文固定連接: http://www.qaforcode.net/archives/194 | 豬哥每日一貼