變量的數據類型
在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);
?>