PHP数据类型有哪些?PHP数据类型完整介绍汇总

来源:AI社区作者:桃乃木香奈头衔:网络博主
导读:本期聚焦于小伙伴创作的《PHP数据类型有哪些?PHP数据类型完整介绍汇总》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《PHP数据类型有哪些?PHP数据类型完整介绍汇总》有用,将其分享出去将是对创作者最好的鼓励。

PHP的数据类型可以分为三大类,分别是标量类型、复合类型和特殊类型,不同的类型对应不同的数据存储和使用场景,掌握这些类型是编写正确PHP代码的基础。

PHP数据类型有哪些?PHP数据类型完整介绍汇总

一、标量类型

标量类型是PHP中最基础的数据类型,每个标量类型只能存储单个值,包含四种具体类型。

1. 字符串类型(string)

字符串类型用于存储文本数据,可以用单引号、双引号或者heredoc、nowdoc语法定义。单引号内的变量不会被解析,双引号内的变量会被解析,开发时可以根据需求选择定义方式。

<?php
// 单引号定义字符串
$name = '张三';
// 双引号定义字符串,变量会被解析
$str1 = "我的名字是$name";
// heredoc语法定义多行字符串
$str2 = <<<EOF
这是第一行内容
这是第二行内容
EOF;
echo $str1; // 输出 我的名字是张三
?>

2. 整型(integer)

整型用于存储整数,支持十进制、八进制(以0开头)、十六进制(以0x开头)表示,整型的取值范围和操作系统位数有关,一般32位系统范围是-2147483648到2147483647,64位系统范围更大。

<?php
$num1 = 123; // 十进制整型
$num2 = 0123; // 八进制整型,对应十进制83
$num3 = 0x1A; // 十六进制整型,对应十进制26
echo $num1 + $num2; // 输出 206
?>

3. 浮点型(float)

浮点型用于存储小数或者极大极小的数值,也叫做双精度类型,浮点型计算可能存在精度误差,涉及金额等精确计算时不建议直接使用浮点型。

<?php
$price = 19.99;
$count = 3;
$total = $price * $count;
echo $total; // 输出 59.97
// 浮点型精度问题示例
echo 0.1 + 0.2 == 0.3 ? '相等' : '不相等'; // 输出 不相等
?>

4. 布尔型(boolean)

布尔型只有两个值,分别是truefalse,不区分大小写,常用于条件判断。需要注意部分值被转换为布尔型时会被视为false,比如0、0.0、空字符串、空数组、null等。

<?php
$is_valid = true;
$zero = 0;
if ($zero) {
    echo '条件成立';
} else {
    echo '条件不成立'; // 会执行这行,因为0转换为布尔型是false
}
?>

二、复合类型

复合类型可以存储多个值或者复杂的数据结构,包含数组、对象、可调用类型三种。

1. 数组(array)

数组是PHP中非常常用的复合类型,可以存储多个任意类型的值,分为索引数组和关联数组,索引数组的键是整数,关联数组的键是字符串。

<?php
// 索引数组
$index_arr = [1, 2, 3, 'test'];
// 关联数组
$assoc_arr = ['name' => '李四', 'age' => 20, 'score' => 95.5];
echo $index_arr[2]; // 输出 3
echo $assoc_arr['name']; // 输出 李四
?>

2. 对象(object)

对象是通过类实例化得到的,属于面向对象编程的基础,对象可以包含属性和方法,用于存储更复杂的业务数据。

<?php
// 定义类
class User {
    public $name;
    public $age;
    public function sayHello() {
        return "你好,我是{$this->name}";
    }
}
// 实例化对象
$user = new User();
$user->name = '王五';
$user->age = 25;
echo $user->sayHello(); // 输出 你好,我是王五
?>

3. 可调用类型(callable)

可调用类型指可以被调用的结构,比如函数名、匿名函数、类方法等,常用于回调函数、事件处理等场景。

<?php
// 定义普通函数
function add($a, $b) {
    return $a + $b;
}
// 匿名函数
$sub = function($a, $b) {
    return $a - $b;
};
// 调用可调用类型
echo call_user_func('add', 5, 3); // 输出 8
echo call_user_func($sub, 5, 3); // 输出 2
?>

三、特殊类型

特殊类型是PHP中比较特殊的两种数据类型,分别是null和资源类型。

1. NULL类型

NULL类型只有一个值就是null,表示变量没有值,以下情况变量会被赋值为null:被赋值为null、没有被赋值、被unset()函数销毁。

<?php
$var1 = null;
$var2;
echo is_null($var1) ? '是null' : '不是null'; // 输出 是null
echo is_null($var2) ? '是null' : '不是null'; // 输出 是null
unset($var1);
echo is_null($var1) ? '是null' : '不是null'; // 输出 是null
?>

2. 资源类型(resource)

资源类型用于存储外部资源的引用,比如数据库连接、文件句柄、图像画布等,资源类型由特殊函数返回,不能直接操作,使用完之后通常不需要手动销毁,PHP会自动垃圾回收。

<?php
// 打开文件,返回资源类型
$file = fopen('test.txt', 'r');
if (is_resource($file)) {
    echo '文件打开成功,资源类型有效';
    fclose($file); // 关闭文件资源
}
?>

四、数据类型判断与转换

实际开发中经常需要判断变量的数据类型,或者进行类型转换,PHP提供了对应的函数和方法。

1. 类型判断

可以使用gettype()函数获取变量的类型字符串,也可以使用is_类型名()系列函数判断变量是否属于某个类型,比如is_string()is_int()等。

<?php
$test = 'hello';
echo gettype($test); // 输出 string
echo is_string($test) ? '是字符串' : '不是字符串'; // 输出 是字符串
echo is_int($test) ? '是整型' : '不是整型'; // 输出 不是整型
?>

2. 类型转换

PHP支持自动类型转换和强制类型转换,自动类型转换会在运算时根据上下文自动进行,强制类型转换可以在变量前加括号加类型名实现,比如(int)$var(string)$var

<?php
$str_num = '123';
$num = (int)$str_num; // 强制转换为整型
echo $num + 5; // 输出 128,自动类型转换将整型和整型相加
$auto_convert = $str_num + 10; // 自动转换,'123'转换为123
echo $auto_convert; // 输出 133
?>

PHP数据类型标量类型复合类型特殊类型修改时间:2026-07-19 11:00:38

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。