PHP 数据类型概览
探索 PHP 中的字符串、整数、浮点数、布尔值和 NULL。
PHP 数据类型概览 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。
PHP 的核心数据类型
PHP 支持四种标量类型,以及几种复合类型和特殊类型:
- 标量:字符串、整数、浮点数、布尔值
- 复合:数组、对象
- 特殊:NULL、资源
PHP 会根据上下文自动选择类型——这称为类型转换。
字符串
字符串用于存储文本。可以使用单引号或双引号:
<?php
$single = 'Hello World'; // single — no variable parsing
$name = 'PHP';
$double = "Hello $name"; // double — variables are interpolated
echo $double; // Hello PHP
echo strlen($single); // 11整数和浮点数
PHP 中的整数是完整的数值;浮点数(双精度数)用于保存小数值:
<?php
$count = 42; // int
$neg = -7; // negative int
$hex = 0x1A; // hexadecimal = 26
$price = 19.99; // float
$sci = 1.5e3; // scientific = 1500.0
echo PHP_INT_MAX; // largest integer on this platform
echo PHP_FLOAT_MAX; // largest float布尔值
布尔值只有 true 或 false 两种。PHP 会将许多值判断为真值或假值:
- 假值:false、0、0.0、''、'0'、[]、NULL
- 真值:其他所有值
<?php
$isActive = true;
$isDone = false;
if ($isActive) {
echo 'Active'; // runs
}
var_dump((bool) ''); // bool(false)
var_dump((bool) 'hi'); // bool(true)NULL
NULL 表示有意缺少某个值:
- 如果变量被赋值为 NULL、从未赋值或已被取消设置,则该变量为 NULL
- 使用
is_null($var)或=== null检查是否为 NULL
<?php
$nothing = null;
var_dump(is_null($nothing)); // bool(true)
var_dump($nothing === null); // bool(true)
var_dump($nothing == false); // bool(true) — loose comparison数组类型
PHP 中的数组可以保存不同类型的值,并使用整数键或字符串键:
<?php
$mixed = [42, 'hello', true, null];
$map = ['name' => 'Alice', 'age' => 30];
echo gettype($mixed); // array
echo count($mixed); // 4
echo $map['name']; // Alice类型检查函数
PHP 提供了 is_* 函数,可在运行时检查类型:
<?php
$val = 3.14;
var_dump(is_int($val)); // bool(false)
var_dump(is_float($val)); // bool(true)
var_dump(is_string($val)); // bool(false)
var_dump(is_numeric('42')); // bool(true) — string that looks like a number严格类型声明
PHP 7+ 允许在文件顶部启用严格类型模式:
<?php
declare(strict_types=1);
function add(int $a, int $b): int {
return $a + $b;
}
echo add(3, 4); // 7
// add(3, '4'); // TypeError in strict mode!函数中的类型提示
PHP 7+ 支持为参数和返回类型添加类型提示,以提高代码清晰度并发现错误:
<?php
function greet(string $name): string {
return 'Hello, ' . $name . '!';
}
function divide(float $a, float $b): ?float {
if ($b === 0.0) return null; // nullable return
return $a / $b;
}
echo greet('PHP'); // Hello, PHP!
var_dump(divide(10, 0)); // NULL资源
资源是一种特殊变量,它保存对外部资源的引用,例如文件句柄或数据库连接:
<?php
// fopen returns a resource
$handle = fopen('data.txt', 'r');
echo gettype($handle); // resource
fclose($handle); // always free resources when done联合类型(PHP 8)
PHP 8 引入了联合类型,允许参数或返回值接受多种类型:
<?php
declare(strict_types=1);
function format(int|float $number): string {
return number_format($number, 2);
}
echo format(1234); // 1,234.00
echo format(9.5); // 9.50快速检查
对于字符串 '42',PHP 的 is_numeric() 函数会返回什么?
回顾:PHP 数据类型
您已经学习了 PHP 的类型系统:
- 标量类型:字符串、整数、浮点数、布尔值
- 用于有意表示缺少值的 NULL
- 作为复合类型的数组和对象
- 用于外部句柄的资源
- PHP 8 支持灵活签名的联合类型
- 使用
declare(strict_types=1)启用严格模式
下一步:使用 echo 和 print 向浏览器输出数据。
常见问题解答
「PHP 数据类型概览」课时是免费的吗?
是的 — 「PHP 数据类型概览」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。
「PHP 数据类型概览」这节课中我会学到什么?
探索 PHP 中的字符串、整数、浮点数、布尔值和 NULL。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 PHP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「PHP 数据类型概览」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 PHP Academy 课中编写并运行代码吗?
能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。