PHP(“PHP:HypertextPreprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到HTML中,尤其适合web开发。
PHP最早由RasmusLerdorf在1995年发明,现在PHP实质上的标准由PHPGroup和开放源代码社群维护。PHP以PHPLicense作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不相容。
PHP目前被广泛的应用,特别是在服务器端的网页程式开发。一般来说PHP大多执行在网页服务器上,透过执行PHP程式码来产生使用者浏览的网页。PHP几乎可以在任何的操作系统上执行,而且使用PHP完全是免费的。根据2007年4月的统计资料,PHP已经被安装在超过2000万个网站和100万台服务器上。
PHP原本的简称为PersonalHomePage,是RasmusLerdorf为了要维护个人网页,而用c语言开发的一些CGI工具程式集,来取代原先使用的Perl程式。最初这些工具程式用来显示RasmusLerdorf的个人履历,以及统计网页流量。他将这些程式和一些表单直译器整合起来,称为PHP/FI。PHP/FI可以和数据库连接,产生简单的动态网页程式。RasmusLerdorf在1995年6月8日将PHP/FI公开释出,希望可以透过社群来加速程式开发与寻找错误。这个释出的版本命名为PHP2,已经有今日PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。程式语法上也类似Perl,有较多的限制,不过更简单、更有弹性。
在1997年,任职于TechnionIIT公司的两个以色列程式设计师:ZeevSuraski和AndiGutmans,重写了PHP的剖析器,成为PHP3的基础,而PHP也在这个时候改称为PHP:HypertextPreprocessor.。经过几个月测试,开发团队在1997年11月释出了PHP/FI2,随后就开始PHP3的开放测试,最后在1998年6月正式释出PHP3。ZeevSuraski和AndiGutmans在PHP3释出后开始改写PHP的核心,这个在1999年释出的剖析器称为ZendEngine,他们也在以色列的RamatGan成立了ZendTechnologies来管理PHP的开发。
在2000年5月22日,以ZendEngine1.0为基础的PHP4正式释出,2004年7月13日则释出了PHP5,PHP5则使用了第二代的ZendEngine。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHPDataObjects,一个存取数据库的延伸函式库)、以及许多效能上的增强。目前PHP4已经不会继续更新,以鼓励用户转移到PHP5。
2008年PHP5成为了PHP唯一的有在开发的PHP版本。将来的PHP5.3将会加入Latestaticbinding和一些其他的功能强化。PHP6的开发也正在进行中,主要的改进有移除register_globals、magicquotes和Safemode的功能。
PHP7于2015年12月3号正式发布,PHP7最让人关注的无非是其性能,据官方说明PHP7的性能是PHP5.6的两倍。
php5与php7之间的区别:
1、性能提升:PHP7比PHP5.0性能提升了两倍。2、以前的许多致命错误,现在改成抛出异常。3、PHP7.0比PHP5.0移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展。4、PHP7.0比PHP5.0新增了空接合操作符。5、PHP7.0比PHP5.0新增加了结合比较运算符。6、PHP7.0比PHP5.0新增加了函数的返回类型声明。7、PHP7.0比PHP5.0新增加了标量类型声明。8、PHP7.0比PHP5.0新增加匿名类。9、错误处理和64位支持
如果您了解错误和异常之间的区别,那么您就会知道在PHP5中处理致命错误非常不容易。PHP7简化了流程,因为它已用可以轻松处理的异常替换了几个主要错误。这是通过引入新的引擎异常对象实现的。
您可能已经知道,PHP5不支持64位整数或大文件,但PHP7中的情况已发生变化。PHP7具有64位支持,因此您也可以使用本机64位整数作为大文件,因此,您可以在64位系统体系结构上完美运行应用程序。
10、声明返回类型
在PHP5中,程序员无法定义函数或方法的返回类型。在现实生活中,这是一个巨大的缺点,因为程序员无法防止意外的返回类型并在其他情况下生成异常。
幸运的是,PHP7允许程序员根据期望的返回值声明函数的返回类型。这肯定会使代码健壮和准确。有四种不同的返回类型可用-bool,int,string和float。
为什么PHP7比PHP5性能提升了?
1、变量存储字节减小,减少内存占用,提升变量操作速度2、改善数组结构,数组元素和hash映射表被分配在同一块内存里,降低了内存占用、提升了cpu缓存命中率3、改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率
PHP8于2020年11月26日正式发布,除重大更改外,PHP8还带来了一些不错的新功能,比如说JIT编译器,联合类型,属性,以及更多。
比较受人关注的特性有:
1、JIT编译器JIT的新特性,则是将PHP代码转化为传统的机器码,而并非通过zend虚拟机来运行,这大大增加了运行速度。但是缺点是向下不兼容。2、注解PHP8之前PHP实现注解可以通过php-parser来实现,但现在可以直接通过Reflection来获取。3、类中的成员变量在PHP8之前,我们一般会这样定义一个类,首先要设置成员变量,然后在构造或者某一个方法为它赋值。4、命名参数方法传参需要默认值时会更灵活5、联合类型在PHP8中你可以使用多种预测类型
PHP的发明人RasmusLerdorf
[以上内容主要来自维基百科:https://zh.wikipedia.org/w/index.php?title=PHP&variant=zh-cn]
评论