PHP

由拉斯穆斯·勒多夫于1995年创造的服务器端脚本语言,是一种在Web开发中被广泛使用的开源语言

PHP

概述

PHP(Hypertext Preprocessor)是一种服务器端脚本语言,起源于1995年丹麦籍开发者拉斯穆斯·勒多夫(Rasmus Lerdorf)为管理个人主页而编写的CGI脚本。得益于可直接嵌入HTML的语法结构,它专门用于动态生成网页,至今仍是全球相当一部分Web服务器所使用的主流开源语言。作为WordPress、Laravel、MediaWiki等庞大生态系统的底层技术,它的意义已不止于一门语言。

主要内容

诞生与发展

  • PHP/FI(1994~1997):以勒多夫编写的“Personal Home Page Tools”为原型,提供访客计数器和表单处理等简单功能。
  • PHP 3(1998):由安迪·古特曼斯(Andy Gutmans)和齐夫·苏拉斯基(Zeev Suraski)重写,并扩展为如今的名称“PHP: Hypertext Preprocessor”;此时它转变为开源项目,从而实现了爆发式增长。
  • PHP 4(2000):引入Zend引擎,性能大幅提升,并部分增加了对面向对象编程的支持。
  • PHP 5(2004):基于Zend Engine 2,正式引入了面向对象模型、异常处理、PDO(PHP Data Objects)等。
  • PHP 6:以支持Unicode为目标,但最终失败,于2010年中止开发。
  • PHP 7(2015):以Zend Engine 3重新设计,相较此前版本实现了约2倍的性能提升,并大量加入标量类型提示、空合并运算符等现代语法。
  • PHP 8(2020):引入JIT(Just-In-Time)编译器、属性(Attributes)、联合类型、match表达式等,性能与表达力均得到增强。

语言特性

PHP在<?php ... ?>标签内编写代码,可与HTML自由混用。变量以$符号开头,类型声明是可选的,但随着版本升级,类型系统逐步得到强化。源于弱类型(loose typing)的类型转换规则对初学者较为友好,但有时也会成为意外Bug的成因。

主要特性如下。

1. 服务器端执行:代码在服务器上执行,仅将结果HTML发送至客户端。

2. 丰富的内置函数:默认提供字符串、数组、日期、文件系统、正则表达式等庞大的标准库。

3. 广泛的数据库支持:几乎对所有数据库(MySQL、PostgreSQL、SQLite、Oracle等)都存在相应扩展。

4. 多范式:同时支持过程式编码与面向对象编码,也可进行函数式风格的数组处理。

5. 包生态系统:通过依赖管理工具Composer,可使用注册于Packagist的数十万个库。

主要框架与CMS

  • Laravel:最受欢迎的全栈框架,提供Eloquent ORM、Blade模板、Artisan CLI等强大工具。
  • Symfony:基于组件的企业级框架,众多大型项目基于其构建。
  • CodeIgniter、CakePHP、Yii:轻量级或传统MVC框架系列。
  • WordPress:占据全球CMS市场约40%以上,是展现PHP至今仍是Web中坚力量的代表性案例。
  • MediaWiki:驱动维基百科的软件,以PHP编写。

批评与局限

PHP在历史上因函数命名不一致(str_replace与strtolower)、弱类型导致的安全漏洞、老旧代码库的维护问题等而受到批评。尤其是早期语言设计中仓促拼凑的一面留存至今,“缺乏一致性”的指责颇多。不过,随着PHP 7之后的性能改进、PHP 8现代特性的引入以及静态分析工具(PHPStan、Psalm)的发展,这些弱点已在相当程度上得到弥补。

最新动向

截至2024~2025年,PHP生态系统的主要趋势如下。

  • PHP 8.3/8.4:PHP 8.3于2023年底、PHP 8.4于2024年11月正式发布。8.4新增了属性钩子(Property Hooks)、非对称可见性、无需括号即可链式调用new的语法、#[\Deprecated]属性等,进一步强化了面向对象的表达力。
  • PHP 7停止支持:随着PHP 7.4的安全支持于2022年底结束,仍在运营旧有代码的企业向8.x迁移,成为2024年之后的主要课题。
  • 性能与JIT的成熟:JIT编译器在实际工作中逐渐得到应用,在CPU密集型任务中的性能优势正得到验证。
  • 框架现代化:Laravel 11(2024)展示了简洁的应用结构与改进的队列·调度功能,Symfony 7也被积极使用。Laravel与基于React/Vue的Inertia.js、Livewire等结合,正演进为全栈开发技术栈。
  • AI·云集成:在PHP中调用OpenAI、Anthropic等API的SDK不断增多,在无服务器环境(AWS Lambda、Bref)中运行PHP的案例也在扩大。
  • 静态分析与类型安全:随着PHPStan、Psalm、Rector等工具在标准开发工作流中站稳脚跟,正朝着结合动态语言灵活性与静态检查稳定性的方向发展。
  • Web生态占有率:据W3Techs统计,PHP在服务器端语言中仍以压倒性优势位居第一(70%区间),并在新项目中与Node.js、Python、Go等展开竞争。

相关主题

  • [[Laravel]]
  • [[WordPress]]
  • [[Composer]]
  • [[MySQL]]
  • [[Web开发]]
  • [[服务器端脚本]]