PHP:修订间差异
TeodoroSeccombe(留言 | 贡献) 小 创建页面,内容为“。” |
IdleTap-bot(留言 | 贡献) 由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行) |
||
| 第1行: | 第1行: | ||
{{Infobox | |||
| title = PHP | |||
| label1 = 中文名 | |||
| data1 = PHP | |||
| label2 = 英文名 | |||
| data2 = PHP(PHP: Hypertext Preprocessor) | |||
| label3 = 编程范式 | |||
| data3 = 多范式:面向对象、指令式、函数式 | |||
| label4 = 设计者 | |||
| data4 = Rasmus Lerdorf | |||
| label5 = 发行时间 | |||
| data5 = 1995年<ref name="wiki-zh">[https://zh.wikipedia.org/wiki/PHP PHP - 维基百科,自由的百科全书]</ref> | |||
| label6 = 当前版本 | |||
| data6 = PHP 8.4(2024年11月21日)<ref name="zend-8.4">[https://www.zend.com/blog/php-8-4 What’s New in PHP 8.4 | Zend]</ref> | |||
| label7 = 类型系统 | |||
| data7 = 动态类型、弱类型 | |||
| label8 = 主要实现 | |||
| data8 = Zend Engine | |||
== | | label9 = 操作系统 | ||
| data9 = 跨平台 | |||
| label10 = 许可证 | |||
| data10 = PHP许可证<ref name="wiki-zh" /> | |||
| label11 = 文件扩展名 | |||
| data11 = .php、.phtml、.php3、.php4、.php5、.php7、.phps | |||
}}'''PHP'''(全称:'''PHP: Hypertext Preprocessor''',递归缩写)是一种开源的通用[[服务器]]端脚本语言,尤其适用于Web开发并可嵌入[[HTML]]中使用<ref name="[[wiki]]-zh" />。PHP的语法借鉴吸收了[[C语言]]、[[Java]]和Perl等流行[[计算机]][[编程语言|语言]]的特点<ref name="wiki-zh" />。PHP最初由Rasmus Lerdorf于1995年开始开发<ref name="wiki-zh" />,目前由The PHP Group维护<ref name="wiki-zh" />。PHP以PHP License作为许可协议<ref name="wiki-zh" />。PHP的应用范围相当广泛,尤其在网页程序的开发上,大多运行在网页服务器上,通过执行PHP代码来产生[[用户]]浏览的网页<ref name="wiki-zh" />。PHP可以在多数的服务器和[[操作系统]]上执行<ref name="wiki-zh" />。根据W3Techs的报告,截至2023年7月,有77.4%的网站使用PHP<ref name="wiki-zh" />。 | |||
== 历史 == | |||
=== 早期发展(PHP/FI) === | |||
PHP的第一个版本由Rasmus Lerdorf于1994年创建,是一组用C[[编程]]语言编写的简单通用网关接口(CGI)[[二进制]]文件,最初用于追踪访问其在线简历的人数<ref name="php-hist">[https://www.php.net/if/history.php PHP: PHP 及其相关项目的历史 - Manual]</ref>。 | |||
1995年6月,Rasmus Lerdorf发布了PHP工具的源代码<ref name="php-hist" />。1995年中期,解析器被重写并命名为PHP/FI Version 2<ref name="php-hist" />。PHP/FI 2.0在经历了数个beta版本的发布后于1997年11月发布了官方正式版本<ref name="wiki-zh" />。 | |||
=== PHP 3 === | |||
PHP 3.0是第一个与现代PHP语法结构相似的版本<ref name="php-hist" />。它由Andi Gutmans和Zeev Suraski于1997年从头重写<ref name="php-hist" />,他们在发现PHP/FI 2.0对于开发电子商务应用功能不足后开始了重写工作<ref name="php-hist" />。PHP 3.0于1998年末正式发布<ref name="php-hist" />。 | |||
== | === PHP 4 === | ||
PHP 4于2000年第二季度发布,其核心采用了Zend Engine<ref name="wiki-zh" />。 | |||
=== PHP 5 === | |||
PHP 5于2004年7月发布,引入了完整的面向对象模型<ref name="wiki-zh" />。 | |||
=== PHP 6(未发布) === | |||
2005年,一个由Andrei Zmievski领导的项目启动,旨在通过嵌入International Components for Unicode(ICU)库并在内部将[[文本]]字符串表示为UTF-16,为PHP带来原生Unicode支持。由于这会导致语言内部和用户代码的重大变化,计划作为6.0版本发布<ref name="php-hist" />。然而,PHP 6从未正式发布<ref name="php-hist" />。 | |||
== | === PHP 7 === | ||
2014年至2015年间,PHP 7作为新的主要版本被开发。其基础是一个最初称为PHP下一代(phpng)的分支,由Dmitry Sto[[go]]v、Xinchen Hui和Nikita Popov编写,旨在通过重构Zend Engine来优化PHP性能,同时保持几乎完全的语言兼容性<ref name="php-hist" />。截至2014年7月14日,WordPress基准测试显示性能提升近100%<ref name="php-hist" />。重写后的Zend Engine被称为Zend Engine 3<ref name="php-hist" />。由于PHP 6从未发布,为避免混淆,新版本被命名为PHP 7<ref name="php-hist" />。PHP 7.0.0于2015年12月正式发布<ref name="techweb-7">[https://www.techweb.com.cn/network/system/2015-12-07/2237281.shtml PHP 7.0.0 正式发布,速度是 PHP 5.6 的两倍]</ref>。 | |||
=== PHP 8 === | |||
PHP 8于2020年11月26日发布<ref name="php-hist" /><ref name="infoq-8">[https://www.infoq.cn/article/y5uivtxccdscvbnz4fw5 PHP 8.0正式发布:支持JIT编译器,性能提升高达3倍]</ref>。这是一个主要版本,包含多项新特性和破坏性变更<ref name="php-hist" />。主要新特性包括:命名参数、联合类型、注解(Attributes)、构造器属性提升、match表达式、nullsafe运算符、即时编译(JIT)<ref name="infoq-8" />。PHP 8的JIT编译器可以为某些用例提供显著的性能提升<ref name="php-hist" />。 | |||
PHP 8.4于2024年11月21日发布<ref name="zend-8.4" />。 | |||
== | === 版本演进 === | ||
PHP的主要版本演进如下<ref name="wiki-zh" />: | |||
* PHP 1 – 1995年 | |||
* PHP 2 – 1995–1997年 | |||
* PHP 3 – 1997–2000年 | |||
* PHP 4 – 2000年第二季度 | |||
* PHP 5 – 2004年7月 | |||
* PHP 7 – 2015年12月 | |||
* PHP 8 – 2020年11月 | |||
== 设计 == | |||
=== | === 语法 === | ||
PHP的语法大量借鉴自C、Java和Perl<ref name="wiki-zh" />。PHP代码通常嵌入HTML中,通过`<?php ... ?>`标签进行分隔。 | |||
=== 类型系统 === | |||
PHP最初是一种动态类型、弱类型的语言<ref name="wiki-zh" />。 | |||
== | === 面向对象 === | ||
自PHP 5起,PHP包含了一个完整的对象模型<ref name="wiki-zh" />。 | |||
== 应用场景 == | |||
PHP主要用于服务器端脚本,这是其使用最广泛、最主要的目标领域。PHP可以完成任何CGI程序能够完成的工作,例如收集表单[[数据]]、生成动态网页、发送/接收[[Cookie]]。 | |||
PHP的典型应用场景包括: | |||
* 动态网站和Web应用程序开发(如内容管理系统、电子商务平台、博客系统等) | |||
* 命令行脚本 | |||
* API开发 | |||
* [[数据库]]管理(与[[MySQL]]、PostgreSQL、[[SQLite]]等数据库交互) | |||
许多知名的内容管理系统和Web框架均基于PHP构建,包括WordPress、Drupal、Joomla、[[Laravel]]、Symfony等。 | |||
== 扩展与生态系统 == | |||
PHP拥有丰富的扩展库生态系统。PHP扩展可以通过PECL(PHP Extension Community Library)和PEAR(PHP Extension and Application Repository)等方式获取。PHP发行包中包含了大多数开发者最常用到的核心扩展库。 | |||
== 性能 == | |||
PHP的性能优化主要涉及以下方面: | |||
* 使用最新稳定版本的PHP(新版本通常包含性能改进) | |||
* 启用OPcache字节码[[缓存]] | |||
* 使用[[Redis]]/Memcached等缓存系统 | |||
* 优化数据库查询 | |||
PHP 8引入的JIT编译器可以为数学运算等计算密集型用例提供显著的性能提升<ref name="php-hist" />。 | |||
== 社区与治理 == | |||
PHP由The PHP Group维护,这是一个由主要PHP开发者组成的志愿者团体<ref name="wiki-zh" />。PHP的开发过程公开进行,代码托管在GitHub上。 | |||
== 参考文献 == | |||
<references /> | |||
== | |||