PHP 變量的數據類型 全解析

變量的數據類型

在PHP中,支持8種原始類型,其中包括四種標量類型、兩種複合類型和兩種特殊類型。

PHP是一門鬆散類型的語言,不必向PHP聲明變量的數據類型,PHP會自動把變量轉換爲自動的數據類型,一定程度降低了學習PHP的門檻。

// memory_get_usage() 獲取當前PHP消耗的內存
echo memory_get_usage(); 

// var_dump() 會返回變量的數據類型和值:
$string = 100;
var_dump($string); // int(100)

1. 布爾類型(boolean)

TRUE 與 FALSE,不區分大小寫。

$flag = TRUE;

2. 整型(integer)

整型可以用十進制、八進制、十六進制指定。
- 十進制就是日常使用的數字
- 八進制,數字前必須加==0==,如0123
- 十六進制,數字前必須加==0x==,如0x1a

3. 浮點型(float)

也就是通常說的小數,可以用小數點或者科學計數法表示。E代表的英文是exponent,指數的意思。

$num_float1 = 1.234;    //小數點
$num_float2 = 1.2e3;    //科學計數法,小寫e
$num_float3 = 7.0E - 10;     //科學計數法,大寫E

4. 字符串(string)

字符串型可以用三種方法定義:單引號形式、雙引號形式和 Heredoc 結構形式。

單引號與雙引號的作用是有區別的:雙引號解析變量,單引號不解析變量。

$var1 = 'hello';
echo '$var1'; // $var1
echo "$var1"; // hello

PHP 在 UTF-8 編碼下,一個漢字佔3個字節,gbk編碼下只佔2個字節。

$var1 = '白小明';
echo var_dump($var1); // string '白小明' (length=9)

單引號與雙引號可以嵌套,單雙、雙單會輸出。單單、雙雙需轉義

$str_string1 = '甲問:"你在哪裏學的PHP?"';
$str_string2 = "乙毫不猶豫地回答:'當然是慕課網咯!'";
$str_string3 = '甲問:\'能告訴我網址嗎?\'';
$str_string4 = "乙答道:\"www.imooc.com\"";

當字符串很長可以使用 Heredoc 結構形式,只要用了<<<之後用相同的字母爲起點。和結尾都可以了。

heredoc 和 nowdoc:link

<?php 
$string1 = <<<GOD
我有一隻小毛驢,我從來也不騎。
有一天我心血來潮,騎着去趕集。
我手裏拿着小皮鞭,我心裏正得意。
不知怎麼嘩啦啦啦啦,我摔了一身泥.
GOD;

echo $string1;
?>

5. 複合類型 — 數組(array)

$names = array("白小明","小明","小白");
var_dump($names);

6. 複合類型 — 對象(class)

在 PHP 中,必須明確地聲明對象。

首先我們必須使用 ==class== 關鍵詞聲明對象的類。類是包含屬性和方法的結構。

然後我們在對象類中定義數據類型,然後在該類的實例中使用此數據類型:

class Car {
    var $color;

    function Car($color="green") {
        $this->color = $color;
    }

    function what_color() {
        return $this->color;
    }
}

7. 特殊類型 — 資源(resource)

資源是由專門的函數來建立和使用的,例如打開文件、數據連接、圖形畫布。

可以對資源進行操作(創建、使用和釋放)。

任何資源,在不需要的時候應該被及時釋放。如果我們忘記了釋放資源,系統自動啓用==垃圾回收機制==,在頁面執行完畢後回收資源,以避免內存被消耗殆盡。

<?php
// f.txt文本文件保存時一定要設置爲UTF-8格式,避免出現亂碼。
// open() 函數:打開文件,得到返回值的就是資源類型。
$file_handle = fopen("f.txt","r");

if ($file_handle){
    // 一行行地讀取文件,然後輸出每行的文字
    // feof() 函數:檢測是否已到達文件末尾。
    while (!feof($file_handle)) {
        // fgets() 函數:讀取一行文本
        $line = fgets($file_handle);
        //輸出一行文本
        echo $line;
        echo "<br />";
    }
}

// fclose() 函數:關閉文件,釋放資源
fclose($file_handle);

?>

8. 特殊類型—空類型(NULL)

NULL是空類型,對大小寫不敏感

NULL類型只有一個取值,表示一個變量沒有值

當被賦值爲NULL,或者尚未被賦值,或者被unset(),這三種情況下變量被認爲爲NULL。

<?php
    // 禁止顯示PHP警告提示
    error_reporting(0);

    $var;
    var_dump($var);

    $var1 = null;
    var_dump($var1);

    $var2 = NULL;
    var_dump( $var2);

    $var3 = "白小明";
    unset($var3);
    var_dump($var3);
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章