PHP 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
PHP 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
PHP 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 PHP License
开发语言 PHP 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具PHP开发工具
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-09-13

软件简介

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。

PHP 最早由 Rasmus Lerdorf 在1995年发明,现在PHP实质上的标准由PHP Group和开放源代码社群维护。PHP 以 PHP License 作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不相容。

PHP 目前被广泛的应用,特别是在服务器端的网页程式开发。一般来说 PHP 大多执行在网页服务器上,透过执行PHP程式码来产生使用者浏览的网页。PHP 几乎可以在任何的操作系统上执行,而且使用 PHP 完全是免费的。根据2007年4月的统计资料,PHP 已经被安装在超过2000万个网站和100万台服务器上。

PHP 原本的简称为 Personal Home Page,是Rasmus Lerdorf 为了要维护个人网页,而用c语言开发的一些CGI工具程式集,来取代原先使用的 Perl 程式。最初这些工具程式用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。他将这些程式和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程式。Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开释出,希望可以透过社群来加速程式开发与寻找错误。这个释出的版本命名为 PHP 2,已经有今日 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程式语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。

在1997年,任职于 Technion IIT 公司的两个以色列程式设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础,而 PHP 也在这个时候改称为PHP: Hypertext Preprocessor.。 经过几个月测试,开发团队在1997年11月释出了 PHP/FI 2,随后就开始 PHP 3 的开放测试,最后在1998年6月正式释出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 释出后开始改写 PHP 的核心,这个在1999年释出的剖析器称为 Zend Engine,他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。

在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式释出,2004年7月13日则释出了PHP 5,PHP 5则使用了第二代的Zend Engine。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函式库)、以及许多效能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。

2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes和Safe mode的功能。

PHP 7 于2015年12月3号正式发布,PHP7 最让人关注的无非是其性能,据官方说明 PHP 7 的性能是 PHP 5.6 的两倍。

php5与php7之间的区别:

1、性能提升:PHP7比PHP5.0性能提升了两倍。
2、以前的许多致命错误,现在改成抛出异常。
3、PHP 7.0比PHP5.0移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展。
4、PHP 7.0比PHP5.0新增了空接合操作符。
5、PHP 7.0比PHP5.0新增加了结合比较运算符。
6、PHP 7.0比PHP5.0新增加了函数的返回类型声明。
7、PHP 7.0比PHP5.0新增加了标量类型声明。
8、PHP 7.0比PHP5.0新增加匿名类。
9、错误处理和64位支持

如果您了解错误和异常之间的区别,那么您就会知道在PHP 5中处理致命错误非常不容易。PHP7简化了流程,因为它已用可以轻松处理的异常替换了几个主要错误。这是通过引入新的引擎异常对象实现的。

您可能已经知道,PHP 5不支持64位整数或大文件,但PHP 7中的情况已发生变化。PHP7具有64位支持,因此您也可以使用本机64位整数作为大文件,因此,您可以在64位系统体系结构上完美运行应用程序。

10、声明返回类型

在PHP 5中,程序员无法定义函数或方法的返回类型。在现实生活中,这是一个巨大的缺点,因为程序员无法防止意外的返回类型并在其他情况下生成异常。

幸运的是,PHP 7允许程序员根据期望的返回值声明函数的返回类型。这肯定会使代码健壮和准确。有四种不同的返回类型可用-bool,int,string和float。

为什么 PHP7 比 PHP5 性能提升了?

1、变量存储字节减小,减少内存占用,提升变量操作速度
2、改善数组结构,数组元素和hash映射表被分配在同一块内存里,降低了内存占用、提升了 cpu 缓存命中率
3、改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率

PHP8于2020年11月26日正式发布,除重大更改外,PHP 8还带来了一些不错的新功能,比如说 JIT编译器, 联合类型, 属性,以及更多。

比较受人关注的特性有:

1、JIT编译器
JIT的新特性,则是将PHP代码转化为传统的机器码,而并非通过zend虚拟机来运行,这大大增加了运行速度。但是缺点是向下不兼容。
2、注解
PHP8之前PHP实现注解可以通过php-parser来实现,但现在可以直接通过Reflection 来获取。
3、类中的成员变量
在PHP8之前,我们一般会这样定义一个类,首先要设置成员变量,然后在构造或者某一个方法为它赋值。
4、命名参数
方法传参需要默认值时会更灵活
5、联合类型
在PHP8中你可以使用多种预测类型

 

PHP 的发明人 Rasmus Lerdorf

[以上内容主要来自维基百科:http://zh.wikipedia.org/w/index.php?title=PHP&variant=zh-cn]

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(62) 发布并加入讨论🔥
发表了资讯
07/11 16:23

AWS SDK 停止对 PHP 8.0.x 及以下版本的支持

AWS 软件工程师 Sean O'Brien 在日前发布的一篇博客文章中表示,从 2025 年 1 月 13 日开始,AWS SDK for PHP 将不再支持 PHP 8.0.x 以及 PHP 7.2.x、7.3.x 和 7.4.x。 因为上述版本已经分别于 2023 年 11 月、2020 年 11 月、2021 年 11 月和 2022 年 11 月结束了生命周期。对于目前仍在使用其中版本之一的用户,建议尽快升级到 PHP 8.1 或更高版本,以便继续接收 SDK 更新。 “PHP 小组最近终止了对 PHP 8.0.x 的支持,PHP 社...

4
0
发表了资讯
05/10 10:24

PHP 8.3.7 发布

PHP 8.3.7 现已发布,这是一个错误修复版本。具体更新内容包括: Core: 修复了错误GH-13772(启用 JIT 时 observer fcall handlers 中的execute_data->opline 指针无效)。 修复了错误GH-13931(将 zero offset 应用于 Zend/zend_opcode.c 中的空指针)。 修复了错误GH-13942(将 zend-max-execution-timers 的行为与其他超时实现保持一致)。 修复了错误GH-14003(使用可调用转换参数对未完成的调用进行了 Broken cleanup)。...

1
0
发表了资讯
04/26 14:07

PHP 获得来自 STF 的 20 万欧元投资

德国 Sovereign Tech Fund (STF) 一直在对各种开源上游项目(从 GNOME 桌面到 Rust 编写的 Coreutils 等)进行大量、急需的投资。 现如今,该基金进一步概述了他们用于推进开源软件生态系统的最新资金。即,对 Mamba、GNOME 和 PHP 的投资。 Sovereign Tech Fund 将继续资助 GNOME 致力于 Linux 桌面的桌面可访问性、工具和安全性,例如围绕 systemd 托管的加密。 对于 PHP,Sovereign Tech Fund 承诺投入 205,000 欧元来帮助提...

13
1
发表了资讯
04/25 14:39

PHP 在 2024 年还值得学习吗?

TIOBE 在 2024 年 4 月榜单中曾指出,随着众多竞争对手进入市场以及语言本身出现的一些问题;PHP 已经不复往日辉煌,在 TIOBE 指数中的排名跌至历史最低点(第 17 位)。 在有关 PHP 已经日渐没落的言论四起的背景下,软件工程师 Sotiris Kourouklis 近日发布了一篇名为“Is PHP still worth it in 2024 ?”的博客文章,对 PHP 语言进行了一番详尽的分析,探讨该语言在现代 Web 开发中的实用性和效率。 并最终得出结论称,PHP 在...

15
1
发表了资讯
04/17 09:16

PHP 8.1.28 发布

PHP 8.1.28 已发布,更新内容如下: Standard: 修复漏洞 GHSA-pc52-254m-w9w7(通过 proc_open 的 $command 参数的类似数组的命令注入)。(CVE-2024-1874) 修复漏洞 GHSA-wpj3-hf5j-x4v4(由于部分 CVE-2022-31629 修复导致的 __Host-/__Secure- cookie 绕过)。 (CVE-2024-2756) 修复漏洞 GHSA-h746-cjrr-wfmr(password_verify 可错误地返回 true,导致 ATO 风险增加)。 (CVE-2024-3096) PHP 8.1.28 更多详情可查看:...

0
0
发表了资讯
04/15 14:40

每周开源观察 | Mistral 8x22B大模型;PHP排名跌至历史最低;微软“白嫖”开源?deepin-IDE实现自举

OSCHINA 带你回顾一周(4.8-4.14)开源新闻、开源项目、重磅事件,以及技术分享等值得开发者关注的内容。 OpenSource Weekly 软件更新 FFmpeg 7.0“Dijkstra”发布 Ubuntu 24.04 LTS 开启 Beta 测试 JavaScript 引擎 V8 的内存沙盒 (V8 Sandbox) 开始测试 Redict 首个稳定版 7.3.0 发布,基于 Redis 7.2.4 的社区分支 微信基于 SQLite 的开源终端数据库 WCDB 迎来重大升级 zx 8.0.0 正式发布,谷歌开源的脚本工具 首个 Android ...

0
1
发表了资讯
04/12 15:52

PHP 8.2.18 和 PHP 8.3.6 发布

PHP 8.3.6 已发布,更新内容如下: Core: 修复了 GH-13569(在扫描 WeakMaps 时,GC 缓冲区不必要地增长到 GC_MAX_BUF_SIZE)。 修复了 bug GH-13612(在弱引用中析构时内存损坏)。 修复了 bug GH-13446(在异常处理程序完成后恢复异常处理程序)。 修复了 bug GH-13784(AX_GCC_FUNC_ATTRIBUTE 失败)。 修复了 bug GH-13670(在析构函数中创建大量对象时 GC 的扩展性不佳)。 DOM: 添加了一些缺失的 ZPP 检查。 修复了 XP...

6
0
发表了资讯
04/09 10:11

TIOBE 4 月榜单:PHP 跌至历史最低点

TIOBE 公布了 2024 年 4 月的编程语言排行榜。 本月,PHP 在 TIOBE 指数中的排名跌至历史最低点(第 17 位)。TIOBE CEO Paul Jansen 指出,在 TIOBE 指数于 2001 年开始发布时,PHP 正在即将成为构建交互式网站的标准语言。因此 PHP 的受欢迎程度逐年上升,并最终获得了超过 10% 的市场份额,甚至曾斩获过 TIOBE 指数前三的位置。 “然而,此后随着众多竞争对手进入市场;譬如 Rails、Django 和 React 等 Web 开发框架采用了 ...

15
1
发表了资讯
03/18 15:17

PHP 8.2.17 发布

PHP 8.2.17 已发布,更新内容如下: Core: 修复了在关闭时 ZTS 持久资源崩溃的问题。 Curl: 修复了由于 libcurl 8.6.0 中字符串更改导致的测试失败问题。 DOM: 修复了 DOMNodeList 和 DOMNodeMap 中维度的引用访问问题。 Fileinfo: 修复了 bug GH-13344(finfo::buffer(): Failed identify data 0:(null), backport)。 FPM: 修复了 bug #75712(php-fpm 中的 getenv 不应该读取 $_ENV、$_SERVER)。 GD: 修复了 bug GH-12019(...

2
0
发表了资讯
03/16 08:49

PHP 8.3.4 发布

PHP 8.3.4 现已发布,这是一个错误修复版本。具体更新内容包括: Core: 修复 ZTS 持久资源在关闭时崩溃的问题。 Curl: 修复由于 libcurl 8.6.0 中的字符串更改而导致测试失败的问题。 Fileinfo: 修复了错误 GH-13344(finfo::buffer(): Failed identify data 0:(null), backport)。 FPM: 修复了错误 #75712(php-fpm 中的 getenv 不应读取 $_ENV、$_SERVER)。 GD: 修复了错误GH-12019(检测系统 gd 库中的图像格式)。 ...

3
0
发表了资讯
03/11 10:22

TIOBE 3 月榜单:PHP 跌出前 10 名

TIOBE 公布了 2024 年 3 月的编程语言排行榜。 二月份的 TIOBE 指数是相对平静的一个月。TIOBE CEO Paul Jansen 指出,唯一值得关注的是,Python 现在领先其他软件 4.5%,Scratch 重新进入前 10 名,Rust 则继续攀升。此外,Java 跌幅高达 -4.61%。 TIOBE 3 月 TOP 20 编程语言 PHP (10→12) 在本月榜单中跌出了 Top 10 的位置。取而代之的是 Scratch,由上月的第 15 位攀升至了第 9 位;Visual Basic 则由第 9 被挤至了第 10 位...

14
1
发表了资讯
02/16 12:23

PHP 8.3.3 发布

PHP 8.3.3 现已发布,这是一个错误修复版本。具体更新内容包括: Core: 修复了 zend-max-execution-timers 构建中的计时器泄漏。 修复了错误GH-12349(ARM 与 mold 的链接失败)。 修复了错误GH-13097(trigger_error / 中的匿名类引用抛出异常)。 修复了错误GH-13177(PHP 8.3.2:在 trait 中使用时不允许使用最终私有构造函数)。 修复了错误GH-13215(GCC 14 build 失败)。 Curl: 修复curl_multi_init() 中缺少的错误检查...

5
0
发表了资讯
01/19 10:28

PHP 8.3.2 发布

PHP 8.3.2 现已发布,这是一个错误修复版本。具体更新内容包括: Core: 修复了错误GH-12953(加载包含超过 11k 元素的 Composer classmaps 时误报 SSA 完整性验证失败)。 修复了错误GH-12999(不支持 strnlen 时构建 zend_strnlen)。 修复了错误GH-12966(缺少交叉编译第三个参数,因此 Autoconf 不会发出警告)。 修复了错误GH-12854(8.3 - 因为最终 trait-used 方法无法在 Reflection 中正确报告可见性)。 Cli: 修复使用...

2
0
发表了资讯
2023/12/22 10:13

PHP 8.3.1 发布

PHP 8.3.1 现已发布,这是一个错误修复版本。具体更新内容包括: Core: 修复了错误 GH-12758 / GH-12768(ZEND_FUNC_GET_ARGS 和 ZEND_BIND_STATIC 内的 OOM 处理程序中的无效 opline)。 修复各种缺失的 NULL 检查。 修复了错误 GH-12835(内部 __call 上的 call->extra_named_params 泄漏)。 修复了错误 GH-12826(嵌套循环中奇怪的指针问题)。 FPM:: 修复了错误 GH-12705(fpm_status_export_to_zval 中的 Segmentation...

13
0
发表了资讯
2023/12/14 11:38

2023 年,PHP 停滞不前

热心开发者分析了一波 GitHub 的数据后发现,编程语言为 PHP 的 PR 数量逐年下降。 GitHut 是通过 GitHub 数据专门分析编程语言的项目。它基于各种编程语言在 GitHub 中的使用情况,挖掘编程语言在开发者中的受欢迎程度,并发现每种语言的独特之处。 GitHub 本身提供了公开的 API,支持与其庞大的事件数据集与托管仓库进行交互。GitHub Archive 则更进一步,汇总并存储了 API 的长期数据。 GitHut 2.0 使用的定量数据通过 Goog...

16
2
发表了资讯
2023/11/23 11:12

PHP 8.3 GA

PHP 8.3 已正式发布。主要变化包括: 类常量显式类型 (Typed class constants) 只读属性深拷贝 新增#[\Override]属性 新增json_validate()函数 添加Randomizer::getBytesFromString()方法 添加Randomizer::getFloat()和Randomizer::nextFloat()方法 以及更好的性能、更好的语法、改进类型安全 下面介绍部分语法的变化。 类型化类常量 PHP < 8.3 interface I { // We may naively assume that the PHP constant is alway...

51
2
发表了资讯
2023/11/13 12:00

TIOBE 11 月榜单:PHP 升至第 7,Kotlin 能否跻身四大?

TIOBE 公布了 2023 年 11 月的编程语言排行榜。 Kotlin 排名继续稳步上升,继上月排名从第 20 位升至 18 后;本月又上涨了 0.17%,升至第 15 位。Kotlin 曾在 2 个月前进入了 TIOBE 指数的前 20。该语言的第一波流行是在 2017 年,彼时 Google 宣布在 Android 上对 Kotlin 提供一流的支持,Kotlin 在 TIOBE 指数中也达到了近 1% 的峰值。但这一记录在本月被打破,目前 Kotlin 的评级为 1.15%。 TIOBE CEO Paul Jansen 评论称,“...

8
1
发表了资讯
2023/10/27 10:34

PHP 8.2.12 发布

PHP 8.2.12 现已发布,这是一个错误修复版本。具体更新内容包括: Core: 修复了错误 GH-12207(当类使用带有 doc block 的特征时内存泄漏)。 修复了错误 GH-12215(Module entry 被覆盖导致 ext/dom 中的类型错误)。 修复了错误 GH-12273(__builtin_cpu_init 检查)。 修复了错误 #80092(ZTS + preload = segfault on shutdown)。 CLI: 确保存在单个 Date header。 CType: 修复了错误 GH-11997(ctype_alnum 在 PHP 8....

6
0
发表了资讯
2023/09/30 10:13

PHP 8.2.11 发布

PHP 8.2.11 现已发布,这是一个错误修复版本。具体更新内容如下: Core: 修复了错误GH-11937(包含对象的常量 AST)。 修复了错误GH-11790(在 riscv64 上,如果实际需要,则需要 libatomic)。 修复了错误GH-11876:ini_parse_quantity() 接受无效数量。 修复了错误GH-12073(释放未完全初始化的闭包时出现的 Segfault)。 修复了错误GH-12060(内部迭代器倒回处理程序被调用两次)。 修复了错误GH-12102(在函数调用中对 TM...

2
0
发表了资讯
2023/09/11 12:53

PHP 最新统计数据:市场份额超 7 成、CMS 中的王者

Wikimedia 基金会首席工程师 Timo Tijhof 发表文章《An Internet of PHP》,探讨了 PHP 在互联网中的广泛应用和重要性。 下面是文章整理的部分数据。 PHP 仍然是首选编程语言 根据 W3 Techs 对全球前 1000 万个网站使用的编程语言分析(截至 2023.8): PHP 占比 77.2% ASP 占比 6.9% Ruby 占比 5.4% 基于 PHP 的内容管理框架 绝大多数公开网站都是使用基于 PHP 的 CMS 进行构建。根据市场份额,12 大 CMS 软件中有 8 个 采用 ...

217
12
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
62 评论
163 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部