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";

字符串

/*
 * 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;

數組

/* 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

/*
 * Resource資源類型:是一種特殊變量,保存了到外部資源的一個引用。
 *
 * NULL:表示一個變量沒有值。
 * is_null():判斷一個變量是否爲NULL。
 * unset():移除。
 * 一個變量被認爲NULL三種情況:
 * 被賦值爲NULL。
 * 尚未被賦值。
 * 被unset()。
 *
 * mixed:說明一個參數可以接受多種不同的(但不一定是所有的)類型。
 *
 */

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章