## 簡介
PHP支持9中原始數據類型 。
四種標量類型:
* boolean(布爾型)
* integer(整型)
* float(浮點型,也稱作 雙精度數double)
* string (字符串)
三種復合類型:
* array(數組)
* object(對象)
* callable(可調用)
最后是兩種特殊類型:
* resource(資源)
* NULL(無類型)
為了確保代碼的易讀性,本手冊還介紹了一些偽類型:
* [mixed](http://php.net/manual/zh/language.pseudo-types.php#language.types.mixed)(混合類型)
* [number](http://php.net/manual/zh/language.pseudo-types.php#language.types.number)(數字類型)
* [callback](http://php.net/manual/zh/language.pseudo-types.php#language.types.callback)(回調類型,又稱為 [callable](http://php.net/manual/zh/language.types.callable.php))
* [array|object](http://php.net/manual/zh/language.pseudo-types.php#language.types.array-object)(數組 | 對象類型)
* void (無類型)
以及偽變量 `$...`。
可能還會讀到一些關于“雙精度(double)”類型的參考。實際上 double 和 float 是相同的,由于一些歷史的原因,這兩個名稱同時存在。
變量的類型通常不是由程序員設定的,確切地說,是由 PHP 根據該變量使用的上下文在運行時決定的。
> **Note**: 如果想查看某個[表達式](http://php.net/manual/zh/language.expressions.php)的值和類型,用 [var\_dump()](http://php.net/manual/zh/function.var-dump.php) 函數。
> 如果只是想得到一個易讀懂的類型的表達方式用于調試,用 [gettype()](http://php.net/manual/zh/function.gettype.php) 函數。要檢驗某個類型,*不要*用 [gettype()](http://php.net/manual/zh/function.gettype.php),而用 *is\_type* 函數。以下是一些范例:
```
<?php
$a_bool?=?TRUE;???//?布爾值?boolean
$a_str??=?"foo";??//?字符串?string
$a_str2?=?'foo';??//?字符串?string
$an_int?=?12;?????//?整型?integer
echo?gettype($a_bool);?//?輸出:??boolean
echo?gettype($a_str);??//?輸出:??string
//?如果是整型,就加上?4
if?(is_int($an_int))?{
????$an_int?+=?4;
}
//?如果?$bool?是字符串,就打印出來
//?(啥也沒打印出來)
if?(is_string($a_bool))?{
????echo?"String:?$a_bool";
}
?>
```
如果要將一個變量強制轉換為某類型,可以對其使用[強制轉換](http://php.net/manual/zh/language.types.type-juggling.php#language.types.typecasting)或者 [settype()](http://php.net/manual/zh/function.settype.php) 函數。
注意變量根據其當時的類型在特定場合下會表現出不同的值。更多信息見[類型轉換的判別](http://php.net/manual/zh/language.types.type-juggling.php)。此外,還可以參考 [PHP 類型比較表](http://php.net/manual/zh/types.comparisons.php)看不同類型相互比較的例子。
- 序言
- 簡介
- PHP是什么?
- PHP能做什么?
- 基本語法
- 類型
- boolean(布爾型)
- integer(整型)
- float(浮點型)
- string(字符串)
- array(數組)
- object(對象)
- callable(可調用)
- resource(資源)
- NULL(無類型)
- 偽類型
- 類型轉換的判別
- 變量
- 基礎
- 預定義變量
- 變量范圍
- 可變變量
- 來自PHP之外的變量
- 常量
- 語法
- 魔術常量
- 表達式
- 運算符
- 運算符優先級
- 算術運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- if
- else
- elseif/else if
- 流程控制的替代語法
- while
- do-whille
- for
- foreach
- break
- continue
- switch
- declare
- return
- require
- include
- require_once
- include_once
- goto
- 函數
- 用戶自定義函數
- 函數的參數
- 返回值
- 可變函數
- 內部 (內置)函數
- 匿名函數
- 類與對象
- 簡介
- 基本概念
- 屬性
- 類的自動加載
- 構造函數
- 訪問控制(可見性)