[TOC]
>[success]PHP 支持 8 種原始數據類型。
## PHP數據類型
**四種標量類型:**
1. boolean(布爾型)
2. integer(整型)
3. float(浮點型,也稱作 double)
4. string(字符串重點)
>[danger]標量可以理解為:是數據結構中最基本單元,只能儲存一個數據
**兩種復合類型:**
1. array(數組重點)
2. object(對象重點)
**最后是兩種特殊類型:**
1. resource(資源)
2. NULL(無類型)
## Boolean 布爾類型
這是最簡單的類型。boolean 表達了真值,可以為 TRUE 或 FALSE。
**語法**
要指定一個布爾值,使用關鍵字 TRUE 或 FALSE。兩個都不區分大小寫。
~~~
<?php
$foo = True; // assign the value TRUE to $foo
?>
~~~
當轉換為 boolean 時,以下值被認為是 FALSE:
1. 布爾值 FALSE 本身
2. 整型值 0(零)
3. 浮點型值 0.0(零)
4. 空字符串,以及字符串 "0"
5. 不包括任何元素的數組
6. 不包括任何成員變量的對象(僅 PHP 4.0 適用)
7. 特殊類型 NULL(包括尚未賦值的變量)
8. 從空標記生成的 SimpleXML 對象
9. 所有其它值都被認為是 TRUE(包括任何資源)。
## Integer 整型
一個 integer 是集合 ? = {..., -2, -1, 0, 1, 2, ...} 中的一個數。前面可以加上 可選的符號(- 或者 +)
## Float 浮點型
浮點型(也叫浮點數 float,雙精度數 double 或實數 real),簡單理解為帶小數點的數值類型,可以用以下任一語法定義:
~~~
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
~~~
## String 字符串 (重點)
一個字符串 string 就是由一系列的字符組成,其中每個字符等同于一個字節。
語法
**一個字符串可以用 3 種方式表達:**
1. 單引號
2. 雙引號
3. 定界符
~~~
<?php
$str = '學并思';
$str = "學并思";
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
~~~
>[danger]注意:字符如果由雙引號括起來,里面有變量,可以進行解析。
## NULL
特殊的 NULL 值表示一個變量沒有值。NULL 類型唯一可能的值就是 NULL。
在下列情況下一個變量被認為是 NULL:
1. 被賦值為 NULL。
2. 尚未被賦值。
3. 被 unset()。
>[danger]其它數據類型后面講。
## 取得和判斷數據類型
<table>
<tbody>
<tr><td>gettype</td><td> — 獲取變量的類型</td>
</tr><tr><td>is_array</td><td> — 檢測變量是否是數組</td>
</tr><tr><td>is_bool</td><td> — 檢測變量是否是布爾型</td>
</tr><tr><td>is_double</td><td> — is_float 的別名</td>
</tr><tr><td>is_float</td><td> — 檢測變量是否是浮點型</td>
</tr><tr><td>is_int</td><td> — 檢測變量是否是整數</td>
</tr><tr><td>is_integer</td><td> — is_int 的別名</td>
</tr><tr><td>is_long</td><td> — is_int 的別名</td>
</tr><tr><td>is_null</td><td> — 檢測變量是否為 NULL</td>
</tr><tr><td>is_numeric</td><td> — 檢測變量是否為數字或數字字符串</td>
</tr><tr><td>is_object</td><td> — 檢測變量是否是一個對象</td>
</tr><tr><td>is_real</td><td> — is_float 的別名</td>
</tr><tr><td>is_resource</td><td> — 檢測變量是否為資源類型</td>
</tr><tr><td>is_scalar</td><td> — 檢測變量是否是一個標量</td>
</tr><tr><td>is_string</td><td> — 檢測變量是否是字符串</td>
</tr></tbody>
</table>
## 類型轉換
<table>
<tbody>
<tr>
<td><a>settype</a></td>
<td>bool settype ( mixed &$var , string $type )</td>
<td>設置變量的類型</td>
</tr>
<tr>
<td><a>intval</a></td>
<td>int intval ( mixed $var [, int $base = 10 ] )</td>
<td>獲取變量的整數值</td>
</tr>
<tr>
<td><a>floatval</a></td>
<td>float floatval ( mixed $var )</td>
<td>獲取變量的浮點值</td>
</tr>
<tr>
<td><a>strval</a></td>
<td>string strval ( mixed $var )</td>
<td>獲取變量的字符串值</td>
</tr>
</tbody>
</table>
>[danger]練習: 檢測通過路徑傳參獲取的數據是什么類型,并且打印出來。
- 序言
- 第一章:準備工作
- 寫在學習之前的話
- web應用開發結構
- 開發工具/環境
- 第二章:展現層面(HTML/CSS)
- HTML簡介
- HTML基礎
- HTML編碼
- HTML鏈接
- HTML圖像
- HTML列表
- HTML表單
- HTML表格(分水嶺)
- HTML 實體
- HTML框架
- CSS層疊樣式表
- CSS選擇器
- CSS文本/字體
- CSS繼承和疊加
- CSS框模型
- CSS浮動(分水嶺)
- CSS定位
- CSS背景
- CSS圖標字體
- CSS補充
- 開發技巧
- 第三章:展現層面(Javascript)
- JS簡介
- JS實現
- JS輸出交互
- JS變量
- JS數據類型
- JS運算符
- JS流程控制(分水嶺)
- JS函數
- JS數組
- JS對象(分水嶺)
- JS數組對象
- JS字符串對象
- JS數學對象
- JS日期對象
- JS BOM對象(分水嶺)
- JS DOM對象
- JS事件對象
- JS元素對象
- JS DOM節點
- 第四章:展現層面(Jquery)
- JQ簡介
- JQ使用
- JQ選擇器
- JQ篩選
- JQ屬性
- JQ-CSS
- JQ事件
- JQ文檔處理
- JQ效果
- JQ-ajax
- 第五章:邏輯/業務層面(PHP)
- PHP簡介
- PHP變量
- PHP數據類型
- PHP常量
- PHP運算符
- PHP流程控制
- PHP函數(分水嶺)
- PHP日期
- PHP數學
- PHP數組
- PHP字符串
- PHP正則表達式(分水嶺)
- PHP目錄操作
- PHP文件
- PHP上傳/下載
- PHP面向對象(分水嶺)
- PHP圖像處理
- PHP會話控制
- Ajax異步處理
- PHPMysql擴展
- PHPMysqli擴展
- PHPPdo擴展
- PHP接口
- PHP命名空間
- 第六章:邏輯/業務層面(框架設計)
- 第七章:存儲層面(mysql)
- Mysql基礎
- Mysql Sql簡介
- Mysql數據庫
- Mysql數據類型
- Mysql數據表
- Mysql操作記錄
- Mysql查詢
- Mysql修改表結構
- Mysql日期與時間
- Mysql分組統計
- Mysql多表查詢
- Mysql安全
- Mysql存儲引擎
- Mysql事務
- Mysql視圖
- Mysql觸發器
- Mysql存儲過程
- Mysql存儲函數
- Mysql優化
- 第八章:服務器(Linux)
- Linux介紹與安裝
- Shell
- 目錄與文件操作
- VIM編輯器使用
- 帳號管理
- SUDO
- 權限控制
- 壓縮與打包
- 軟件安裝
- 計劃任務
- 進程管理
- 寶塔Linux面板