很多刚学 PHP 的朋友,只会定义变量赋值,却完全没搞懂数据类型,结果写代码时:数字变字符串、判断总出错、数组总报错、数据库交互踩大坑。其实 PHP 数据类型并不难,这篇文章从基础到实战,一次性讲透,看完你写代码会稳很多。
一、PHP 是弱类型语言,到底啥意思?
PHP 最大特点:不用提前声明类型,赋值自动决定类型。
$a = 10; // 整数 $a = "hello"; // 自动变成字符串 $a = true; // 又变成布尔值
优点:写得快、上手简单
缺点:类型不注意就会出隐藏 bug
二、PHP 8 大核心数据类型(必背)
PHP 数据类型分三大类:标量、复合、特殊。
1. 标量类型(最基础)
① 整数 int /integer
- 没有小数点的数字
$age = 18; $price = -100;
② 浮点数 float /double
- 带小数点的数
$pi = 3.14; $money = 99.8;
③ 字符串 string
- 用单引号 / 双引号包起来
$name = '张三'; $msg = "你好,$name";
④ 布尔值 bool /boolean
- 只有两个值:
true/false
$is_login = true; $is_vip = false;
2. 复合类型(装多个数据)
① 数组 array
// 索引数组 $cars = ["宝马", "奔驰", "奥迪"]; // 关联数组 $user = [ 'name' => '小明', 'age' => 20 ];
② 对象 object
面向对象用,存放属性和方法:
class User {} $user = new User();
3. 特殊类型
① NULL
表示没有值、空、未定义
$a = null;
② 资源 resource
文件、数据库连接、图片处理等外部资源:
$fp = fopen("test.txt", "r");
三、超级实用:如何查看变量类型?
1. var_dump () —— 开发必备神器
能看到类型 + 值 + 长度:
$name = "PHP"; var_dump($name); // string(3) "PHP"
2. gettype () —— 获取类型名称
echo gettype(123); // integer echo gettype("123"); // string
四、新手最容易踩的类型坑
1. 数字和字符串傻傻分不清
$a = "10"; $b = 20; echo $a + $b; // 30(PHP自动转类型)
2. 0、空字符串、null 容易混淆
这些在 if 里都等于 false:
- 0
- "0"
- ""
- null
- false
- []
3. 双引号会解析变量,单引号不会
$name = "小红"; echo '你好 $name'; // 你好 $name echo "你好 $name"; // 你好 小红
五、类型强制转换(实战常用)
想把某个值强行转成指定类型:
$str = "123"; // 转整数 $num = (int)$str; // 转布尔 $bool = (bool)$str; // 转字符串 $s = (string)$num;
六、一张图记住 PHP 所有数据类型
- 标量:int、float、string、bool
- 复合:array、object
- 特殊:null、resource
七、总结
- PHP 是弱类型语言,变量类型由值决定
- 核心就 8 种类型,标量 + 复合 + 特殊
- 开发必用:
var_dump()看类型 - 字符串、数字、布尔、数组是最常用的
参考:https://app-aar1v5j0ef41.appmiaoda.com/article/0ff3dc62-50ae-4f41-921b-1b4106d01fc4.html