语法与数据结构
echo、数组、switch/match、JSON/CSV/XML。
30 分钟
语法与数据结构
在 php-essentials 变量与控制流基础上,本课强化 数组操作、match 表达式与常见数据格式(JSON / CSV / XML)。路径见 /roadmaps/php。
学习目标
- 熟练使用关联数组与数组高阶函数
- 用
match替代复杂switch - 读写 JSON、CSV 与简单 XML
数组与 match
<?php
declare(strict_types=1);
$lesson = ['slug' => 'pha-syntax', 'order' => 2, 'tags' => ['web', 'data']];
$tags = array_map('strtoupper', $lesson['tags']);
$filtered = array_filter($lesson, fn($v) => is_string($v));
$level = match ($lesson['order']) {
1 => 'intro',
2, 3 => 'core',
default => 'advanced',
};
match 是表达式,必须覆盖所有分支或提供 default,比 switch 更严格。
JSON
$data = ['track' => 'php-advanced-essentials', 'lessons' => 12];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
$parsed = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
assert($parsed['lessons'] === 12);
API 开发中 JSON 是最常见的交换格式;始终用 JSON_THROW_ON_ERROR 捕获解析错误。
CSV
$rows = [['slug', 'title'], ['pha-syntax', '语法与数据结构']];
$fp = fopen('lessons.csv', 'w');
foreach ($rows as $row) {
fputcsv($fp, $row);
}
fclose($fp);
简单 XML
$xml = new SimpleXMLElement('<track name="php-advanced-essentials"/>');
$xml->addChild('lesson', 'pha-syntax');
echo $xml->asXML();
配置文件与旧系统集成时常遇到 XML;新项目优先 JSON。
练习
- 用
array_column从课时数组提取所有slug - 把 3 条课时记录写入 CSV 再读回
- 用
match根据 HTTP 方法返回不同状态码
小结
数组 + match + 标准格式 = PHP 数据处理三件套。 下一课深入 Web 请求与超全局变量。
加载本节练习…