整理 PHP 数组函数、类型声明、命名空间、PDO 预处理、Composer 依赖管理和 PHP 8 新特性,示例贴合 Web 项目,适合后端开发随手核对写法。
数组函数
数组兼作列表与字典,映射、过滤、归约配合箭头函数最顺手,注意回调参数顺序是值在前。过滤函数会保留原键名,想重新从零索引得再套一层数组值函数,否则前端拿到的下标不连续。
$a = [1, 2, 3];
类型声明
参数、返回值和属性都能标注类型,文件首行开启严格模式后不再隐式转换。构造器属性提升能把声明和赋值合成一行,联合类型用竖线连接,可空类型加问号,别混用两种写法。
declare(strict_types=1);
命名空间与自动加载
命名空间对应目录结构,用 use 引入其它命名空间,自动加载映射交给 Composer 处理,别再手写一长串 require。同一文件建议只放一个类,全局函数和常量要显式加反斜杠限定。
namespace AppService;
PDO 预处理
用预处理语句绑定参数,绝不拼接外部输入;开启异常模式后出错会抛异常,默认取关联数组能省掉额外设置。执行时传数组绑定最省事,参数标记不要自己加引号,转义交给驱动处理。
$s = $pdo->prepare("SELECT 1");
Composer
composer.json 声明依赖与自动加载映射,安装命令按锁文件复现环境,生产环境加跳过开发依赖的参数。改完自动加载规则要重新生成映射,报类不存在时先查这里。
{ "require": { "monolog/monolog": "^3.0" } }
PHP 8 特性
命名参数可跳过中间默认值,match 是严格比较的表达式,nullsafe 运算符在对象为 null 时直接返回空,不再层层判空。match 没有匹配项会抛异常,记得写 default 分支兜底。
$m = match (404) { default => 0 };