PHP 是服务器端脚本语言,主要用于 Web 开发。其解释器以模块形式集成到 Web 服务器中,当收到请求时执行 PHP 代码,生成动态内容返回给客户端。
PHP 代码嵌入 HTML 文档。 标记结束。文件扩展名通常为 .php。服务器配置决定哪些文件作为 PHP 处理。纯 PHP 文件可以省略结束标签。
变量以 $ 符号开头,变量名区分大小写。变量无需声明类型,类型由赋值决定。isset 函数检测变量是否存在。unset 函数释放变量。empty 函数检测空值。
数据类型包括字符串、整数、浮点数、布尔值、数组、对象、资源和 NULL。gettype 返回类型名称。is_* 系列函数检测类型。强制类型转换使用 (type) 语法。
字符串可以用单引号或双引号包裹。双引号字符串解析变量和转义序列。单引号字符串只识别 \ 和 ‘ 转义。heredoc 和 nowdoc 用于多行字符串。
字符串函数功能丰富。strlen 计算长度。substr 截取子串。strpos 查找位置。str_replace 替换文本。explode 分割字符串。implode 连接数组元素。trim 去除首尾空白。
数组是 PHP 的核心数据结构。索引数组使用数字索引。关联数组使用字符串键。array() 或 [] 创建数组。array_key_exists 检查键存在。count 统计元素数量。
数组遍历使用 foreach 循环。foreach ($array as $value) 遍历值。foreach ($array as $key => $value) 遍历键值对。数组指针函数 current、next、prev、end 遍历数组。
数组排序函数众多。sort 按值升序,rsort 降序。ksort 按键升序,krsort 降序。usort 自定义排序。array_multisort 多维数组排序。shuffle 随机排序。
数组过滤和转换使用 array_filter 和 array_map。array_filter 通过回调函数过滤元素。array_map 通过回调函数转换元素。array_reduce 逐步合并为单一值。
超级全局变量在所有作用域可用。$_GET 获取 URL 参数。$_POST 获取表单数据。$_REQUEST 综合获取。$_SERVER 服务器信息。$_SESSION 会话数据。$_COOKIE Cookie 数据。
表单处理是 PHP 常见应用。$_POST[‘fieldname’] 获取表单字段。htmlspecialchars 防止 XSS。 stripslashes 处理转义字符。empty 验证必填字段。
文件上传使用 $_FILES 超全局变量。$_FILES[‘file’][‘name’] 获取文件名。$_FILES[‘file’][‘tmp_name’] 临时文件路径。$_FILES[‘file’][‘error’] 错误代码。move_uploaded_file 保存上传文件。
会话管理跟踪用户状态。session_start 启动会话。$_SESSION[‘key’] 读写会话数据。session_destroy 销毁会话。session_regenerate_id 防止会话固定攻击。
Cookie 在客户端存储数据。setcookie 发送 Cookie 到浏览器。$_COOKIE[‘name’] 读取 Cookie。过期时间使用时间戳格式。path 参数限制 Cookie 作用域。
PHP 操作数据库。PDO 提供统一的数据库接口。prepare 方法预处理 SQL。execute 执行查询。fetch 逐行获取结果。setAttribute 配置连接属性。
MySQLi 是 MySQL 数据库的官方扩展。支持面向对象和过程式两种风格。mysqli_report 配置错误报告模式。事务处理使用 autocommit、commit、rollback。
密码安全使用 password_hash 和 password_verify。password_hash 使用强哈希算法。password_verify 验证密码正确性。PASSWORD_DEFAULT 算法随 PHP 更新升级。
防止 SQL 注入使用预处理语句。占位符 ? 或命名参数 :name。绑定参数而不是拼接字符串。验证输入数据类型。mysqli_real_escape_string 转义特殊字符。
防止 XSS 跨站脚本攻击。htmlspecialchars 转义 HTML 特殊字符。strip_tags 移除 HTML 标签。ENT_QUOTES 同时转义单引号。尽量避免使用 raw HTML 输出。
异常处理使用 try-catch 块。Exception 是基础异常类。自定义异常继承 Exception。set_exception_handler 设置全局异常处理器。finally 块总是执行。
命名空间避免类名冲突。namespace 声明命名空间。use 导入命名空间。use as 创建别名。\\ 前缀访问全局空间。PSR-4 规范自动加载类文件。
Composer 是 PHP 包管理器。composer.json 声明依赖。composer install 安装包。composer update 更新依赖。composer dump-autoload 生成自动加载文件。
PHP 框架简化 Web 开发。Laravel 是最流行的全栈框架。Symfony 组件化设计优秀。Yii2 中文社区活跃。CodeIgniter 简单易用。Slim 适合微服务。
框架提供 MVC 架构。C 控制器处理请求。M 模型操作数据。V 视图渲染输出。路由将 URL 映射到控制器。中间件处理横切关注点。
单元测试保证代码质量。PHPUnit 是标准测试框架。TestCase 是测试基类。assert* 系列方法断言。setUp 和 tearDown 每个测试前后运行。数据提供器参数化测试。
调试 PHP 代码使用 var_dump 和 print_r。error_log 将消息写入错误日志。Xdebug 提供断点调试和堆栈跟踪。Whoops 库美化错误页面。FirePHP 在 Firebug 输出调试信息。
性能优化策略多样。OPcache 缓存字节码。减少文件包含数量。使用局部变量而非全局变量。避免在循环中计算。及时释放数据库连接。
部署 PHP 应用配置 Web 服务器。Apache 使用 .htaccess 配置。Nginx 使用 location 块配置。PHP-FPM 是推荐的运行模式。安全配置禁用危险函数。
PHP 8 带来显著改进。JIT 编译器提升计算性能。联合类型增强类型安全。命名参数提高代码可读性。Match 表达式简化分支。构造器属性提升简化类定义。
现代 PHP 开发最佳实践。使用类型声明。编写单元测试。遵循 PSR 标准。采用 Composer 管理依赖。选择成熟的框架。保持代码风格一致。
掌握 PHP 需要持续学习官方文档。关注 PHP Internals 社区动态。阅读优质开源项目源码。参与技术社区讨论。在实际项目中积累经验。
(本文为 PHP 技术系列文章的第 84 篇)











暂无评论内容