PHP(Hypertext Preprocessor,超文本预处理器)是一种通用开源脚本语言,尤其适用于 Web 开发,并可嵌入 HTML 中使用。
PHP 的核心定位是 服务端脚本语言,专为 Web 开发而生,但现已发展为通用编程语言,支持 CLI 命令行脚本、桌面应用(非主流)等多种场景。
PHP 由 Rasmus Lerdorf 于 1994 年创建,最初是一套简单的 CGI 脚本工具,用于跟踪他的个人简历访问情况。最初的名称为 "Personal Home Page Tools"。
PHP 目前采用 每年一版 的发布节奏,每版提供 两年活跃支持 + 一年安全支持。当前主流版本为 PHP 8.1、8.2、8.3、8.4(2024年发布)。建议所有用户升级到 PHP 8 系列,以享受性能提升和安全更新。
<?php ... ?> 标签中,语句以分号 ; 结尾。$name ≠ $Name),函数名和类名不区分大小写。// 单行注释、# 单行注释、/* */ 多行注释。int(整数)、float(浮点数)、string(字符串)、bool(布尔值)array(极其灵活,支持数字/字符串键名混合)、object(对象)null(空值)、resource(资源句柄,如文件指针)int|string)、混合类型(mixed)、只读属性(readonly)$ 符号开头(如 $name = "PHP";)$$var 允许动态变量名(如 $a = "hello"; $$a = "world"; → $hello = "world")$_GET、$_POST、$_SESSION、$_COOKIE、$_SERVER、$_FILES、$_REQUEST、$_ENVdefine("NAME", "value") 或 const NAME = "value". 用于连接字符串(如 "Hello " . "World")@ 用于抑制错误输出(建议少用)==(弱类型比较)vs ===(严格比较,值和类型都相同)0 == "abc" 为 true,建议始终使用 === 和 !==
??(PHP 7),如 $name = $_GET["name"] ?? "默认值"-> 用于访问对象属性和方法if/else、elseif、switch、match(PHP 8,更强大的模式匹配)for、foreach(专门遍历数组/对象)、while、do-whilefunction foo($arg1, $arg2) { return ...; }& 前缀,如 function foo(&$var))... 展开运算符(如 function sum(...$numbers))$func = function($arg) { ... };,配合 use 关键字捕获外部变量fn($x) => $x * 2class User { ... },通过 new 实例化class Admin extends Userinterface Loggable { public function log(): void; }abstract class Animal { abstract public function makeSound(); }public(公开)、protected(本类及子类)、private(仅本类)__construct()、__destruct()__get()、__set()、__call()、__toString()、__invoke() 等namespace App\Models;,用于代码组织与自动加载spl_autoload_register(),Composer 的 vendor/autoload.php 是标准实现trait Logger { ... },通过 use Logger; 引入public readonly string $id;final class 禁止继承,final function 禁止重写try { ... } catch (Exception $e) { ... } finally { ... }Exception 类$value = $input ?? throw new InvalidArgumentException();PHP 支持混合 HTML 的嵌入式语法,新手可以在 30 分钟内写出第一个动态页面。这种低门槛让 PHP 成为 Web 开发入门的绝佳选择。
PHP 拥有 超过 1000 个内置函数,涵盖字符串处理、数组操作、文件系统、图像处理、网络通信、加密解密等各个方面,真正意义上的"开箱即用"。
PHP 的 array 既是有序列表,又是键值对字典,还能充当栈、队列、集合。PHP 提供了 70+ 个数组操作函数(array_map、array_filter、array_reduce 等),灵活性无与伦比。
$_GET 获取 URL 参数$_POST 获取表单提交数据$_FILES 数组 + move_uploaded_file() 函数header() 函数控制重定向、缓存、内容类型等setcookie() 设置,$_COOKIE 读取session_start() 启用,$_SESSION 读写,默认基于文件存储mysqli 扩展(面向过程/面向对象)Composer 是 PHP 的包管理器,拥有全球最大的 PHP 代码仓库 Packagist(超过 35 万个包)。通过 composer require 即可引入第三方库,自动处理依赖关系。
PHP-FIG(PHP 框架互操作组织)制定了 PSR 系列标准:
mod_php(模块嵌入)php -S localhost:8000)OPcache 是 PHP 的字节码缓存扩展,将编译后的脚本缓存到共享内存中,避免每次请求都重新编译。生产环境必须开启,可提升 2-3 倍性能。
Swoole 是一个用 C 语言编写的 PHP 扩展,让 PHP 像 Go 一样支持高并发 TCP/UDP/WebSocket 服务。Hyperf 是基于 Swoole 的现代 PHP 框架,支持协程、注解、依赖注入等高级特性。
ReactPHP 和 Amp 是事件驱动的异步编程库,支持非阻塞 I/O,让 PHP 能够处理高并发网络请求。
使用 C 语言和 Zend API 编写 PHP 扩展,可以深度定制 PHP 功能或提升性能。
绝对禁止拼接 SQL 字符串! 必须使用 PDO 预处理语句。
// ✅ 正确做法
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
所有输出到 HTML 的内容必须使用 htmlspecialchars() 转义。
echo htmlspecialchars($userInput, ENT_QUOTES, "UTF-8");
password_hash() + password_verify()(默认使用 Bcrypt,PHP 8 支持 Argon2).env 文件暴露在 Web 根目录$_ENV / getenv())存储敏感配置strpos vs str_contains),弱类型陷阱掌握基础语法 + 超全局变量 + 表单处理 + 数据库操作(PDO)
选择一个主流框架深入学习(推荐 Laravel,或 ThinkPHP)
掌握 Composer、OPcache、性能优化、安全防护、单元测试
了解 Swoole 协程、微服务架构、领域驱动设计(DDD)
PHP 并非"老古董",而是一门与时俱进、务实高效的语言。
它以 Web 开发为根基,通过 PHP 7/8 的革新、JIT 和强类型进化,加上 Swoole 等扩展,已经从纯脚本语言成长为可以支撑 高并发、企业级应用 的现代语言。
完整认识 PHP 时,既要肯定其 "快速出活" 的经典优势,也要看到其 "现代蜕变" 的新生面貌。
PHP 的未来,依然可期! 🚀