## 简介
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
- 函数
- 用户自定义函数
- 函数的参数
- 返回值
- 可变函数
- 内部 (内置)函数
- 匿名函数
- 类与对象
- 简介
- 基本概念
- 属性
- 类的自动加载
- 构造函数
- 访问控制(可见性)