PHP中支持9种原始数据类型。
包含四种标量类型(该种类型的变量本身存储的是值本身,不是值的索引):
- boolean(布尔型)
- integer(整型)
- float(浮点型,也称作 double)
- string(字符串)
三种复合类型(该种类型的变量本身存储的是值的索引,不是值本身)
- array(数组)
- object(对象)
- callable(可调用)就是所谓的函数
还有两种特殊类型:
- resource(资源)
- NULL(无类型)空
除了这些原始数据类型,还有一些伪类型:
伪类型(pseudo-types) 是 PHP 文档里用于指示参数可以使用的类型和值。 请注意,它们不是 PHP 语言里原生类型。 所以不能把伪类型用于自定义函数里的类型约束(typehint)。
- mixed(混合类型)
- number(数字类型)
- callback(回调类型,又称为 callable)
- array|object(数组 | 对象类型)
- void (无类型)
PHP中变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。这中特性和Javascript非常相似,也就是PHP是一种弱类型的编程语言,我们不需要向计算机声明变量的类型(声明变量的类型是强类型语言和弱类型语言的区别,如:JAVA作为强类型的语言,我们在使用变量的时候总是需要去声明变量的类型)。
Note: 如果想查看某个表达式的值和类型,用 var_dump() 函数。
如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype() 函数。要检验某个类型,不要用 gettype(),而用 is_type 函数。以下是一些范例:
<?php
$var_bool = true; // 布尔值 boolean
$var_str = "foo"; // 字符串 string
$var_str2 = 'foo'; // 字符串 string
$var_int = 12; // 整型 integer
echo gettype($var_bool); // 输出: boolean
echo gettype($var_str); // 输出: string
echo gettype($var_int); // 输出: integer
// 如果是整型,就加上 4
if (is_int($var_int)) {
$var_int += 4;
echo "这是一个整型".$var_int;
}
// 如果 $var_bool 是字符串,就打印出来
// (啥也没打印出来)
if (is_string($var_bool)) {
echo "这是字符串: $var_bool";
}
?>
如果要将一个变量强制转换为某类型,可以对其使用强制转换或者 settype() 函数。