数据类型
这篇讲 PHP 的八种基本数据类型以及最常用的字符串处理函数。理解数据类型是正确使用变量和运算符的基础。
数据类型概览
PHP 支持八种原始类型:
| 分类 | 类型 | 说明 |
|---|---|---|
| 标量类型 | string(字符串) | 字符序列,如 "hello" |
| 标量类型 | int(整型) | 整数,如 42 |
| 标量类型 | float(浮点型) | 带小数点的数字,如 3.14 |
| 标量类型 | bool(布尔型) | true 或 false |
| 复合类型 | array(数组) | 有序键值对集合 |
| 复合类型 | object(对象) | 类的实例 |
| 特殊类型 | null | 表示变量无值 |
| 特殊类型 | resource(资源) | 外部资源引用(如文件句柄、数据库连接) |
字符串
字符串可以是单引号或双引号内的任意文本:
<?php
$x = "Hello world!"; // 双引号——会解析变量
$y = 'Hello world!'; // 单引号——原样输出,不解析变量
?>
双引号 vs 单引号:双引号会解析其中的变量和转义字符(\n、\t 等),单引号则原样输出。对于纯文本字符串,单引号性能略好。
常用的字符串函数:
| 函数 | 说明 | 示例 |
|---|---|---|
strlen() | 返回字符串长度(字节数) | strlen("Hello") → 5 |
str_word_count() | 统计单词数量 | str_word_count("a b c") → 3 |
strrev() | 反转字符串 | strrev("ab") → "ba" |
strpos() | 查找子串首次出现位置,未找到返回 false | strpos("Hello", "e") → 1 |
str_replace() | 替换字符串中的内容 | str_replace("world", "PHP", "Hello world!") → "Hello PHP!" |
整型
整型是不带小数点的数字,支持十进制、十六进制(0x 前缀)和八进制(0 前缀):
<?php
$x = 5985; // 十进制
$y = -345; // 负数
$z = 0x8C; // 十六进制 = 140
$w = 047; // 八进制 = 39
var_dump($x); // int(5985)
?>
浮点型
浮点数是有小数点或指数形式的数字:
<?php
$x = 10.365;
$y = 2.4e3; // 2.4 × 10³ = 2400
$z = 8E-5; // 8 × 10⁻⁵ = 0.00008
var_dump($x); // float(10.365)
?>
布尔型
布尔型只有两个值:true 和 false,常用于条件判断:
<?php
$x = true;
$y = false;
?>
NULL
null 表示变量没有值。以下情况变量被认为 null:
- 被赋值为
null - 尚未被赋值
- 被
unset()销毁
<?php
$x = "Hello world!";
$x = null;
var_dump($x); // NULL
?>
var_dump() 是 PHP 调试最常用的函数之一,它会同时输出变量的类型和值。在不确定变量内容时,先 var_dump() 看一眼。类型转换
PHP 的弱类型特性意味着类型会自动转换,但你也可以手动强制转换:
<?php
// 自动转换
$sum = "5" + 3; // 字符串 "5" 自动转为整型,结果 8
// 手动转换
$x = (int) "42"; // 强制转为整型 → 42
$y = (string) 123; // 强制转为字符串 → "123"
$z = (bool) 1; // 强制转为布尔 → true
?>
一句话小结
PHP 有 8 种原始类型,使用最频繁的是字符串、整型、数组和布尔型。var_dump() 是类型调试利器。关于数组的详细内容,参见 数组。下一篇讲 运算符。
最后更新于