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 指数为
超过 的项目

评论

点击加入讨论🔥(61)
发表了资讯
04/15 07:52

PHP 8.2.5 发布

PHP 8.2.5 现已发布,这是一个错误修复版本。具体更新内容如下: Core: 在 ZTS/Linux 构建中添加了对 max_execution_time 的可选支持 修复了递归 AST 评估中的 use-after-free。 修复了错误 GH-8646(内存泄漏 PHP FPM 8.1)。 重新添加一些被错误地从 CTE 中移除的 CTE 函数。 从错误添加的 array_diff_ukey() 中删除 CTE flag。 修复了错误 GH-10801(CTE 函数中的命名参数导致 segfault)。 修复了错误 GH-8789(PHP 8.0.2...

6
0
发表了资讯
02/11 08:29

PHP 生态系统经历大规模现代化改造,7.4 是最常用版本

Zend by Perforce 发布了最新的“2022 PHP Landscape Report”。该报告基于 2022 年 10 月至 12 月期间对 651 名 IT 专业人士的调查,涵盖了开发人员最常用的 PHP 工具、正在构建的内容以及所面临的挑战等多方面内容。受访者中排名前三的工作类别分别是:开发人员 (56.2%),开发经理和主管 (10.3%),IT 经理和主管 (7%)。 报告指出,尽管已经于去年 11 月停止支持,但 PHP 7.4 仍然是最常用的版本,54% 的受访者将其部署在生产环...

37
1
发表了资讯
02/04 07:56

PHP 8.2.2 发布

PHP 8.2.2 现已发布,这是一个错误修复版本。具体更新内容如下: Core: 修复了错误 GH-10200(zif_get_object_vars:断言 `!(((__ht)->u.flags & (1<<2)) != 0)' 失败)。 修复 GH-10251(断言 `(flag & (1<<3)) == 0' 失败)。 修复 GH-10240(将超过 2**30 个元素添加到 unpacked 数组时断言失败)。 修复 GH-9735(Fiber stack variables 不参与 cycle collector)。 修复 GH-9675(内部枚举方法的 run_time_cache init 损坏...

29
0
发表了资讯
01/06 07:28

PHP 8.2.1 发布

PHP 8.2.1 现已发布,这是一个安全更新版本。具体更新内容如下: Core: 修复了错误GH-9905(当类未定义时 constant() 行为不一致)。 修复了错误GH-9918(xxHash 的许可证信息未包含在 README.REDIST.BINS 文件中)。 修复了错误GH-9890(OpenSSL legacy providers 在 Windows 上不可用)。 修复了错误GH-9650(无法初始化堆:[0x000001e7])。 修复了 Windows ftok(3) emulation 中潜在的未定义行为。 修复了 GH-9769(对象解...

4
0
发表了资讯
2022/12/09 09:44

PHP 8.2 发布了!

PHP8.2是PHP语言现代化进程中的一个重要的里程碑。除了令人兴奋地新特性和改进之外,PHP8.2还简化了语言,取消了对动态类属性的支持,在遇到某些非最优的ini配置时发出警告,并修复了一些影响PHP数组排序和某些类型的字符串转换/编码操作的遗留PHP行为。 系统改进 PHP8.2解决了PHP类型系统的几个缺点和限制,允许PHP应用采用更好的类型安全。包括添加了true类型,允许null和false作为独立的类型使用,并支持DNF类型(泛型解析)...

4
1
发表了资讯
2022/12/09 07:34

PHP 8.2.0 发布

PHP 开发团队宣布了 PHP 8.2.0 的立即可用,这是 PHP 语言的最新次要版本。 PHP 8.2 带来了许多改进和新功能,例如: 只读类 (Readonly classes) 将一个类标记为只读会给每个声明的属性添加只读修饰符,并阻止动态属性的创建。此外,不可能通过使用 AllowDynamicProperties 属性来增加对它们的支持。试图这样做将触发一个编译时错误。 <?php #[AllowDynamicProperties] readonly class Foo { } // Fatal error: Cannot ...

19
1
发表了资讯
2022/11/10 08:33

GitHub Octoverse 报告:HCL 增长最快,PHP 使用量下降,开源社区运营增加

GitHub 发布了 2022 年度 Octoverse 报告,涵盖了对开源软件的探索,包括其对世界和公司的影响;以及影响软件开发的关键趋势内容。报告引用了梅赛德斯-奔驰技术创新的 FOSS 大使 Wolfgang Gehring 的一句话称,“如今,如果不进行开源,你将无法再开发软件。” 当我们 10 年前发布第一份 Octoverse 报告 以庆祝 GitHub 上用户达 280 万人时,我们无法预测开源会对世界产生的影响。 2012 年,大多数企业只使用开源软件 (OSS) 来运...

9
3
发表了资讯
2022/10/31 07:06

PHP 8.1.12 发布

PHP 8.1.12 现已发布,这是一个安全更新版本;官方鼓励所有 PHP 8.1 用户升级到此版本。具体更新内容如下: Core: 修复了 FreeBSD i386 架构上 Fiber 的 segfault。 Fileinfo: 修复了错误 GH-8805(finfo 对 woff/woff2 文件返回错误的 mime 类型)。 GD: 修复了错误 #81739:由于 imageloadfont() 中的输入验证不足而导致 OOB 读取。(CVE-2022-31630) Hash: 修复了错误 #81738:hash_update() 中长参数的缓冲区溢出。(CVE-...

1
0
发表了资讯
2022/10/26 18:05

PHP 8.3 的第一个决议:内置 JSON 验证函数

目前PHP8.2已经进入RC阶段,按计划还有一个月就会发布正式版。而PHP8.3的决议也早已开始推进了。 本文为大家介绍一个最新通过的决议,也是PHP8.3的第一个决议:内置JSON验证函数。 这项决议在2022-08-14发起,2022-10-07 投票完成,最终18票通过,1票反对。 本决议很简单,增加一个内置的验证JSON有效的函数:json_validate。大多数的用户通过json_decode来将json字符串解析为数组或对象,本提议的函数将和json_decode使用完全的...

0
1
发表了资讯
2022/10/19 07:46

PHP 8.2 被批准在 Fedora 38 中引入

Fedora 工程和指导委员会 (FESCo) 已批准将 Fedora 38 的 PHP 包升级到 PHP 8.2。与大多数软件包一样,Fedora Linux 在发布时往往总是附带最新的 PHP 版本。这意味着在明年春天,Fedora Linux 38 将为那些想在这个由 Red Hat 赞助的 现代 Linux 发行版上运行 LAMP 的用户提供 PHP 8.2。 PHP 8.2 包含了大量的改进内容。具体有: 增加了对在 traits 中定义常量的支持 Random code 中的 extension-specific Exceptions/Errors 更新...

0
1
发表了资讯
2022/10/04 07:45

PHP 7.4.32, 8.0.24 & 8.1.11 发布

PHP 的三个分支发布了新版本,分别是 7.4.32, 8.0.24 & 8.1.11,更新内容主要是修复错误和安全问题。 PHP 7.4.32 此版本解决了特殊构造的 phar 文件的无限递归问题,并阻止了 __Host/__Secure HTTP header 的变量名称混用的冲突。建议所有使用 PHP 7.4 系列的开发者升级至此版本。 Core: 修复 bug #81726: phar wrapper: 使用 quine gzip 文件时出现的 DOS (CVE-2022-31628) 修复 bug #81727: 不要破坏与具有特定语义含义的变量...

7
0
2022/09/29 18:23

PHP 存在不受控制的递归漏洞

漏洞描述 在 PHP 受影响版本内,phar 解压缩器代码将递归解压缩“quines”gzip 文件,从而导致无限循环。攻击者会利用此漏洞导致服务器资源耗尽。 漏洞名称 PHP 存在不受控制的递归漏洞 漏洞类型 未经控制的递归 发现时间 2022/9/29 漏洞影响广度 一般 MPS编号 MPS-2022-12657 CVE编号 CVE-2022-31628 CNVD编号 - 影响范围 php@[8.0.0, 8.0.24) php@[8.1.0, 8.1.11) php@(-∞, 7.4.31) 修复方案 升级php到 7.4.31、8.0.24、8.1...

1
3
2022/09/29 18:20

PHP 存在输入验证不当漏洞

漏洞描述 PHP 是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。 PHP 的受影响版本中存在输入验证不当漏洞,攻击者可以利用此漏洞通过网络在受害者的浏览器中设置恶意 Cookie,该 Cookie 会被 PHP 应用程序视为一个 __Host- 或 __Secure-格式的 cookie ,从而欺骗应用程序执行恶意操作。 漏洞名称 PHP 存在输入验证不当漏洞 漏洞类型 输入验证不恰当 发现时间 2022/9/29 漏洞影响广度 广 MPS编号 MPS-20...

2
4
发表了资讯
2022/09/07 07:01

PHP 8.2.0 RC1 现已发布

PHP 8.2.0 的第一个候选版本 RC 1 现已发布,带来了各种错误修复,包括可能的崩溃修复。PHP CLI 的内置 Web 服务器也对其静态资源的处理进行了各种改进。 根据介绍,早期的 PHP 8.2 开发版本包括: 增加了对在 traits 中定义常量的支持 Random code 中的 extension-specific Exceptions/Errors 更新了内置 Web 服务器的 MIME 类型表 减少了各种函数返回的字符串的内存占用 初步支持 macOS Instrument 的 JIT 性能分析生成 新的 ...

38
1
发表了资讯
2022/07/08 08:31

各国开发者薪资水平:中国排第 19,JavaScript/PHP 薪资最低

智能招聘平台 CodeSubmit 统计分析了 20 多个国家在 2022 年的软件工程领域的平均工资发现,美国的软件工程师薪资水平最高,瑞士和以色列紧随其后。前十榜单还包括丹麦、加拿大、挪威、澳大利亚、英国、德国和瑞典。中国则排在第 19 顺位,平均薪资水平为 23,790 美元/年。 其他方面,印度是一个西方公司倾向于将其技术需求外包的国家,其平均年薪为 7,725 美元。尼日利亚薪资水平垫底,为 7,255 美元/年。CodeSubmit 方面指出,...

21
7
发表了资讯
2022/07/01 10:24

PHP 8.2 最新进展,已发布 Alhpa2,即将进行新特性冻结

PHP基金会每月都会在博客上发表当月的PHP核心的最新进展。本文介绍的是6月的进展情况。 PHP8.2 的 QA 版本 和 特性冻结 PHP8.2计划于11 月 24 日 发布,PHP的版本发行管理员们已经发布了PHP8.2的Alpha 1和Alpha 2的版本。 这些Alpha 版本不适合用于生产环境,而是用作测试环境和本地开发的版本节点。 已经编译的windows版本可以在 https://windows.php.net/qa/ 上找到,Docker 镜像 可以在Docker Hub 上找到,源代码在Github 上...

10
2
2022/06/24 08:25

开发者调查:Rust/PostgreSQL 最受喜爱,PHP 薪水偏低

Stack Overflow 2022 开发者调查报告现已出炉。Stack Overflow 年度开发者调查是面向全球开发者进行的规模最大、最全面的调查,调查涵盖了从开发者喜爱的技术到工作偏好等内容。2022 年是 Stack Overflow 发布年度开发者调查报告的第十二年,有来自 180 个国家/地区的 73000 多名开发人员参与了这个调查。其中,依旧是来自美国和印度的受访者数量最多,其次是德国和 UKI(英国和爱尔兰);仅有 632 份调查反馈来自中国开发者,占...

40
26
发表了资讯
2022/06/02 14:43

PHP 基金会五月新闻公告发布

<?php echo 'Hello world!'; 各位赞助者,你好。 本次新闻公告比较短,更详细的内容可以参考PHP核心摘要#2 (或者查看由PHP武器库小编整理的中文版 PHP8.2将有哪些新东西) 。 核心开发者采访 在发布了四月新闻公告后,Sebastian Bergmann 发表了对我们几位核心开发者的采访:Derick Rethans, George Peter Banyard, Jakub Zelenka, Máté Kocsis, and Ilija Tovilo。查看文章底部的文章链接,看看这些开发者正在做什么。 PHP核...

1
1
发表了资讯
2022/05/24 08:44

PHP 8.2 早期版本的性能基准测试

按照原定计划不变的话,PHP 8.2 预计将于今年 11 月正式发布,这意味着其目前应该已经完成了开发周期的一半。鉴于此,科技媒体 Phoronix 发布了针对 PHP 8.2 早期版本的性能基准测试报告。 PHP 8.2 引入了对 readonly 类的支持、重设内存峰值使用跟踪的功能、堆栈跟踪中敏感参数值的编辑、动态属性的废弃以及其他各种变化。测试结果表明,“对 PHP 8.2 Git 的一些测试进展顺利,没有什么问题”。测试环境如下: 测试人员基于 AM...

17
0
发表了资讯
2022/05/13 07:24

PHP 8.1.6 发布

PHP 8.1.6 现已发布,这是一个错误修复版本;官方鼓励所有 PHP 8.1 用户升级到此版本。具体更新内容如下: Core: 修复了错误#8310(不再识别注册表设置)。 修复了资源 ID 分配期间的潜在 race condition。 修复了错误#8133(预加载包含枚举数组的常量时出现故障)。 修复 Haiku ZTS 构建。 Date: 修复了错误#7752(DateTimeZone::getTransitions() 返回的数据不足)。 修复了错误#8108(时区无法按预期工作)。 修复了错误#...

11
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{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}}
没有更多内容
暂无内容
暂无内容
61 评论
164 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部