| PHP 5.3 | 
PHP 5.4 | 
PHP 5.5 | 
| 1.__DIR__ 之前版本 dirname(__FILE__); 获取脚本目录,5.3用__DIR__定位,无需在调用函数; | 
1.Traits language construct 代码复用的一个方法 | 
1.不再向后兼容 
1).放弃对Windows XP和2003 的支持 
2).弃用e修饰符。e修饰符是指示preg_replace函数用来评估替换字符串作为PHP代码,而不只是仅仅做一个简单的字符串替换。 | 
 | 
 | 
 | 
2.操作符?: 可以直接快速去非空值。 
如array()?:array(1);输出array(1) | 
2.数组引用支持 如:foo()[1] | 
2.新增函数和类 
1).boolval() 
2).hash_pbkdf2()PBKDF2全称“Password-Based Key  
Derivation Function 2”,正如它的名字一样,是一 
种从密码派生出加密密钥的算法 
3).array_column()新增array_column 
(或array_pluck)函数 | 
 | 
 | 
 | 
3.__callStatic() 静态调用,相当 
于__call(),只是动态有点慢 | 
3.DTrace 动态跟踪 是由 Sun? 开发的一个用来 
在生产和试验性生产系统上找出系统瓶颈的工具 | 
3.一个简单的密码散列API | 
 | 
 | 
 | 
| 4.允许动态方法调用静态方法 | 
4.Zend 内存使用性能的提升 | 
4.语言改变 | 
 | 
 | 
 | 
5.延迟静态绑定 使用static::调用静态方法、属性, 
可以在类的继承过程中进行动态绑定 | 
5.ext/sqlite moved to pecl PHP扩展和应用仓库 
(sqlite3 support is still built-in) | 
5.常量引用 
“常量引用”意味着数组可以直接操作 
字符串和数组字面值。 | 
 | 
 | 
 | 
6.MySQLInd 
1).特殊的,高速的专门为PHP设计的MySQL调用库接口 
2).更好的性能 
3).内存的使用优化 
4).内置的驱动(不是适应性的再次扩展) | 
6.删除break/continue语法规则 | 
6.调用empty()函数(和其他表达式)一起工作 | 
 | 
 | 
 | 
7.INI Magic 
1).CGI/FastCGI 支持".htaccess" 形式的INI控制 
2).用户可以自己设定每个目录的INI在php.ini中通过[PATH=/var/www/domain.com]设定 
3).优化错误处理允许用户使用INI变量和常量任何定义的INI文件中 | 
7.删除  
1).register_globals 设置控制PHP变量访问范围,  
allow_call_time_pass_reference,是否启用在函数调用时强制参数被按照引用传递, 
2).register_long_arrays ini options 设定 PHP 是否注册已过时的 $HTTP_*_VARS 之类的预定义变量 | 
7.获取完整类别名称 | 
 | 
 | 
 | 
8.扩展的 OpenSSL 函数 
1).使用 OpenSSL Digest 函数; 
2).使用 OpenSSL 加密函数 
3).扩展的 openssl_pkey_new() 和 
openssl_pkey_get_details()函数  
允许访问 内部的 DSA, RSA 和 DH 密匙. 
其目标在PHP中实现一个简单的OpenId | 
8.删除 
1).session_is_regisitered()检查变量是否在会话中已经注册  
2).session_unregister()检查变量是否未在会话中注册 | 
8.参数跳跃 | 
 | 
 | 
 | 
9.SPL(Standard PHP Library) 优化  
1).优化嵌套的目录迭代次数由文件系统迭代 
2).引入 GlobIterator 
3).各种各样的数据结构类: 双链表,  
堆栈, 队列, 堆, 小型堆, 大型堆, 优先级队列 | 
9.PHP5.4内置了一个简单的Web服务器 | 
9.标量类型提示 
枚举类型、字符型和各种整数的表示 
形式统一叫做标量类型 | 
 | 
 | 
 | 
10.时间处理进行扩展了和添加 
1).可控制的 strtotime()由date_create_from_format()实现 
2).添加了 date_get_last_errors(),并且返回时间语法分析的错误和警告 | 
10.通过构造Hash冲突实现各种语言的拒绝服务攻击 | 
10.Getter 和 Setter | 
 | 
 | 
 | 
11.getopt()--分析命令行参数 优化 
1).影响 Windows 平台 
2).本地的执行不依赖于本地getopt()实现. 
3).跨平台支持长选项 (--option) | 
11.函数类型提示的增强 
  由于php是弱类型的语言,因此在php 5.0后,引入了函数类型提示的功能,其含义为对于传入函数中的参数都进行类型检查 | 
11.生成器 目前,自定义迭代器很少使用,因为它们 
的实现,需要大量的样板代码。生成器解决这个问题,并提供了一种简单的样板代码来创建迭代器。 | 
 | 
 | 
 | 
12.XSLT Profiling 扩展样式表转换语言 
1).引入 Xslt Profiling 通过 setProfiling()实现 | 
 | 
12.列表解析和生成器表达式 
列表解析提供一个简单的方法对数组进行小规模操作 
生成器表达式返回一个迭代器(用于动态生成值)而不是 
一个数组 | 
 | 
 | 
 | 
13.E_DEPRECATED 标记 
1).怎么样将一个php发行为一个没有错误的模式? 废弃 
2).E_DEPRECATED用来指定废弃的功能,或许未来的版本中会消除。 | 
 | 
13.GD库已经升级到2.1版本添加新功能和改进现有功能 | 
 | 
 | 
 | 
14.垃圾回收器 GC 
1).为复杂和长时间运行脚本的执行结束周期释放内存的清理 
gc_enable(); // 激活GC,增强GC机制,回收循环引用的无效变量  
var_dump(gc_collect_cycles()); // 强制回收已无效的变量  
gc_disable(); // 禁用GC | 
 | 
14.添加final关键字 | 
 | 
 | 
 | 
15.NOWDOC  
1).一个 HEREDOC 不再进行转译,一种Perl风格的字符串输出技术 | 
 | 
15.添加了Zend OPcache扩展操作码缓存 | 
 | 
 | 
 | 
| 16.支持名字空间(namespace) | 
 | 
 | 
 | 
 | 
 | 
17.mysql驱动mysqlnd 
一直以来,php都是通过mysql客户端连接mysql,而现在mysql 
官方已经推出php版的mysql客户端,而这个mysqlnd有效降低内 
存的使用以及提高性能。 | 
 | 
 | 
 | 
 | 
 | 
18.性能提高 
1).Better stack implementation(工具) in the engine 
2).常量保存在ROM里(Constants moved to read-only memory), 
3).改进异常处理,操作码(opcode)更简洁 
4).解决了include(require)_once重复打开的问题,之前once 
我都是用静态变量实现的,终于解决这个问题了 
5).用gcc4编译的二进制文件将更小 
6).md5()大概提高了10%-15%的性能 | 
 | 
 | 
 | 
 | 
 | 
| 19.Lambda函数和闭包 | 
 | 
 | 
 | 
 | 
 | 
20.跳标签  指令goto转到操作符可以用于跳转到另一个部分 
的程序 | 
 | 
 | 
 | 
 | 
 | 
21.新增几个扩展 
ext/phar,phar扩展提供了一种方法来把整个PHP应用程序到一个单一的文件称为“phar”(PHP存档),方便分发和安装 
ext/intl,国际化功能  
ext/fileinfo,文件信息 
ext/sqlite3,支持SQLite数据库版本3 
ext/enchant附魔拼写图书馆,附魔步骤提供统一性和一致性上的拼写库,并实现一定的功能,可能是缺乏任何个别供应商库 | 
 | 
 |