您的位置:首页 > 编程语言 > PHP开发

PHP5历史以及各个版本的新功能和新特性收集总结

2015-11-26 15:25 573 查看
PHP的版本历史

1995年初

PHP1.0诞生
Rasmus Lerdof发明了PHP,这是简单的一套Perl脚本,用来跟踪访问者的信息。这个时候的PHP只是一个小工具而已,它的名字叫做“Personal Home Page Tool”(个人主页小工具)。
1995年6月

PHP2.0诞生
Rasmus Lerdof用C语言来重新开发这个工具,取代了最初的Perl程序。这个新的用C写的工具最大的特色就是可以访问数据库,可以让用户简单地开发动态Web程序了。这个用C写的工具又称为PHP/FI。它已经有了今天php的一些基本功能了。
自Rasmus在1995年6月将PHP/FI发布源码之后,到1997年,全世界大约有几千个用户(估计)和大约50000个域名安装。
1998年6月
PHP3.0诞生
虽然说98年6月才正式发布php3.0,但是在正式发布之前,已经经过了9个月的公开测试了。
Andi Gutmans和Zeev Suraski加入了PHP开发项目组。这是两个以色列工程师,他们在使用PHP/FI的时候发现了PHP的一些缺点,然后决定重写PHP的解析器。注 意,在这个时候,PHP就不再称为Personal Home Page了。而改称为PHP:Hypertext Preprocessor(超文本预处理器 )。
PHP3是最像现在使用的php的第一个版本,这个重写的解释器也是后来Zend的雏形。PHP3.0的最强大的功能就是它的可扩展性。它提供给第三方开发者数据库,协议,和API的基础结构之外,还吸引了大量的开发人员加入并提交新的模块。
2000年5月
PHP4.0发布
Andi Gutmans和Zeev Suranski在4.0做的最大的动作就是重写了PHP的代码,发明了Zend引擎来增强程序运行时的性能和PHP的模块性。这个Zend实际上就是Andi和Zeev名字缩写的合称。
使用了Zend引擎,PHP获得了更高的性能之外,也有其他一些关键的功能,包括支持更多的web服务器;HTTP,Session的支持,输出缓冲等。
2004年7月
PHP5.0发布
PHP5.0的核心是Zend引擎2代。它引入了新的对象模型和大量的新功能。比如引入了PDO(PHP Data Object)
新特性
PHP5.3
新功能:

添加了命名空间的支持.

添加了静态晚绑定支持.

增加了goto支持。

增加了闭包支持。

新增了两个魔术方法, callStatic 和 invoke.

添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号.就是<<'EOF'这样的语法。

可使用双引号声明 Heredoc, 补充了 Nowdoc 语法.

可在类外部使用 const 关键词声明 常量.

三元运算操作符有了简写形式:表达式 ? true :false 。

HTTP 流包裹器将从 200 到 399 全部的状态码都视为成功。

允许动态访问静态方法。

异常可以被内嵌

新增了循环引用的垃圾回收器并且默认是开启的.

mail() 现在支持邮件发送日志. (注意: 仅支持通过该函数发送的邮件.)

PHP5.4
新特性:

新增支持 traits 。

新增短数组语法,比如
a=[1,2,3,4];或
a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4]; 。

新增支持对函数返回数组的成员访问解析,例如 foo()[0] 。

现在 闭包 支持 $this 。

现在不管是否设置 short_open_tag php.ini 选项,<?= 将总是可用。

新增在实例化时访问类成员,例如: (new Foo)->bar() 。

现在支持 Class::{expr}() 语法。

新增二进制直接量,例如:0b001001101

改进解析错误信息和不兼容参数的警告。

SESSION 扩展现在能追踪文件的 上传进度 。

内置用于开发的 CLI 模式的 web server 。

PHP5.5
新特性:

新增 Generators,包括yield关键字

新增 finally 关键字

foreach 现在支持 list()

empty() 现在支持传入一个任意表达式,而不仅是一个变量。

非变量array和string也能支持下标获取了

类名通过::class可以获取

增加了opcache扩展
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: