PHP
數據類型PHP
支持八種原始的數據類型:php
布爾型數組
/* * boolean:TRUE FALSE * 如下值被認爲是FALSE: * 布爾值FALSE自己 * 整型值0(零) * 浮點型0.0(零) * 空字符串,以及字符串"0" * 不包含任何元素的數組 * 特殊類型NULL(包括還沒有賦值的變量) * ---全部其餘值都被認爲是TRUE */ $foo = true; echo "foo的值是:$foo"."\n"; if ($foo){ echo "foo是真值"."\n"; } else{ echo "foo是假值"."\n"; }
整型函數
/* * Integer 整型,能夠十進制、十六進制(0x)、八進制(0)、二進制(0b) * php不支持無符號整數,即php中的整數都是有符號的,最大的整數爲PHP_INT_MAX * 注:若是給定一個數超出了integer的範圍,將會被解釋成float,一樣若是執行的運算結果超出了integer範圍,也會返回float */ //PHP中沒有整除運算符,1/2會產生float 0.5。 echo 1/2; echo "\n"; echo (integer)(1/2); //integer強制轉換爲整型(去尾法) echo "\n"; echo round(1/2); //round()四捨五入 echo "\n"; //當從浮點型轉換成整數時,將向下取整數(去尾法) echo (integer)0.8; //輸出:0 echo "\n";
浮點型測試
/* * Float:浮點數 * 永遠不要直接比較兩個浮點數是否相等 * 要測試浮點數是否相等,要使用一個僅比該數值大一丁點的最小偏差值。 */ $a = 1.234; $b = 1.235; echo "\n";
字符串spa
/* * string:字符串 * 一個string就是由一系列的字符組成,每一個字符等同與一個字節。 * string能夠用4中方式表達: * 單引號:單引號內的字符串中的變量和特殊字符的轉義序列不會被替換。 * 雙引號:會對變量和轉義字符進行替換。 * heredoc結構: * nowdoc結構 * * 字符串細節: * 一個字符串就是由一系列的字符組成,所以: * 一個字母 佔一個字節 * 一個數字 佔一個字節 * 漢字(gbk/gb2312) 佔兩個字節 * 漢字(utf-8) 佔三個字節 */ //heredoc格式 /* * 使用注意: * 1. <<<固定 AAA名稱能夠變化,通常來講所有大寫 * 2. <<<標識符 後面不能帶任何內容,包括空格 * 3. 結束的標識符前面不能有空格 * 4. heredoc能夠解析變量和轉義字符 */ $str = <<<AAA FDSAJFKLDASJFKLD;AJF;DASJFK;DASKF\nJD;KLSAFJKDLS;ANFDSAJFLKDS;A AAA; echo $str;
數組code
/* Array:PHP中的數組是一個有序映射,映射是一種把values關聯到keys的類型。 * -->array能夠接受任意數量用逗號分割的健值對。 * PHP能夠同時包含integer和string類型的鍵名。 * key:能夠是一個整數integer或字符串string。 * value:能夠是任意類型的值。 * * 1. 包含有合法整型值的字符串會被轉換爲整型(如"8"會被轉換爲8,可是"08"不能轉換爲8) * 2. 浮點數會被轉換爲整型,意味着小數部分會被捨去。 * 3. 布爾值會被轉換爲整型。 * 4. NULL會被轉換爲空字符串,即""。 * 5. 數組和對應不能被用爲鍵名。 * * 若是數組定義中多個單元都用了同一個鍵名,則只會使用最後一個,以前其餘的都會被覆蓋。 */ echo "\n"; $arr1 = array( "key1" => "value1", "key2" => "value2" ); var_dump($arr1); echo "\n"; $arr2 = array( 1 => "a", 2.2 => "b", true => "c" //會對以前key爲1的進行覆蓋 ); //echo $arr2; echo不能直接對數組進行輸出 var_dump($arr2); echo "\n"; //若是對給出的值沒有指定鍵名,則取當前最大的整數索引值,則新的鍵名將是該值+1,若是指定的鍵名已經有值,則該值會被覆蓋。 //因此key爲可選項,若是未指定,PHP將自動使用以前用過的最大的integer鍵名+1做爲新鍵名,最小值爲0,若是當前尚未整數索引,鍵名爲0 $arr2[] = 4; var_dump($arr2); echo "\n"; $arr3 = array( "a", //鍵值爲0 "b", //鍵值爲1 6 => "c", "d" //鍵值爲7 ); var_dump($arr3); echo "\n"; //訪問數組:能夠用array[key]語法訪問,也可使用array{key} $arr4 = array( "key1" => "value1", "key2" => "value2" ); var_dump($arr4["key1"]); echo "\n"; var_dump($arr4{"key1"}); echo "\n"; $arr5 = array(5 =>1, 4 => 2); //數組的建立 var_dump($arr5); echo "\n"; $arr5[] = 3; //添加一個新的key-value對 var_dump($arr5); echo "\n"; $arr5["x"] = 5; //若是x存在,則覆蓋value,若是不存在,添加 var_dump($arr5); echo "\n"; unset($arr5[4]); //移除該鍵值對 var_dump($arr5); echo "\n"; unset($arr5); //移除整個數組 // var_dump($arr5); echo "\n"; //注意:這裏所使用的最大整數鍵名不必定就是當前數組中,它只要在上次數組從新生成索引後曾經存在過就好了。 $arr6 = array(1, 2, 3, 4, 5, 6); print_r($arr6); echo "\n"; foreach ($arr6 as $i => $value){ //遍歷數組,移除全部元素 // echo $value; // echo "<br/>"; unset($arr6[$i]); } print_r($arr6); //此時數組爲空 echo "\n"; $arr6[] = 9; //此時添加一個key-value(注意鍵名爲6,不爲0) print_r($arr6); echo "\n"; $arr6 = array_values($arr6); //從新索引 $arr6[] = 10; //此時key爲1,上一個key爲0 print_r($arr6); echo "\n"; //unset()函數容許刪除數組中的某個鍵值對,但不會從新索引排序,若是須要刪除後重建索引,能夠用array_value()函數 //foreach as 控制結構專門用於數組的,它提供了一個簡單的方法來遍歷數組 //對於任意integer,float,string,boolean類型,若是將一個值轉換爲只有一個元素的數組(下標爲0) $var = "你好"; printf("%s", $var); // var_dump(array($var)); echo "\n";
對象對象
/* *Object:對象,要建立一個新的對象object,使用new語句實例化一個類。 * */ class Foo { function do_foo() { echo "doing foo.."."\n"; } } $bar = new Foo(); $bar -> do_foo();
資源和null
blog
/* * Resource資源類型:是一種特殊變量,保存了到外部資源的一個引用。 * * NULL:表示一個變量沒有值。 * is_null():判斷一個變量是否爲NULL。 * unset():移除。 * 一個變量被認爲NULL三種狀況: * 被賦值爲NULL。 * 還沒有被賦值。 * 被unset()。 * * mixed:說明一個參數能夠接受多種不一樣的(但不必定是全部的)類型。 * */