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附魔拼写图书馆,附魔步骤提供统一性和一致性上的拼写库,并实现一定的功能,可能是缺乏任何个别供应商库 |
|
|