paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较
paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较
PHP5的新特性 2
· 对象的参照过渡是默认的(default) 3
· 引入访问属性的限制 3
· 引入访问方法的限制 3
· 抽象类和抽象方法 3
· 接口 3
· final声明 3
· 名空间 3
· 类内常量 3
· 类变量 3
· 统一构建器 3
· 析构函数(Distructor) 3
· 其他附属特性 3
##PHP5.3的新特性你会有个全新的理解和感悟。 4
1、首先对之前滥用的语法进行了规范 4
2、MySQL驱动Mysqli 提高效率 4
3、PHP5.3安全和性能的提升 4
4、延迟静态绑定 4
?: 操作符 4
增强的ini文件支持 INI Magic 4
增强的error handling 5
(1)名字空间,用来解决命名被污染 6
(2)新的魔法函数 __callStatic 原来 __call的静态模式 6
(3)支持变量调用静态,可以通过$someClass::$method()调用 6
(4)新增日期函数date_create_from_format 6
(5)新增了类似JavaScript中的匿名函数和闭包 6
1. (6)新魔法常量 __DIR__ 来解决路径问题 6
循环垃圾收集 6
SPL 添加了新的内容,包括双重链接表、栈、堆和队列的实现, 7
##5.4主要包括以下特性: 9
###1. traits (多继承s解决方案) 9
Array dereferencing support 数组元素赋值到个变量 9
Short array syntax [] 9
3.DTrace support 9
4.Webserver SAPI /// Buid-in web server 10
5. Upload progress 11
6. JsonSerializable Interface 11
7. Use mysqlnd by default 11
高精度计时器 11
##5.5新特性 12
1 生成器 yield关键字 12
2 finally关键字 12
3 foreach 支持list() 12
4 empty() 支持自定义函数了 12
5 非变量array和string也能支持下标获取了 12
6 类名通过::class可以获取 12
7 增加了opcache扩展 12
##PHP 6 新特性 13
Unicode支援 13
Web 2.0 特性 SOAP 13
XML增强 13
参考 14
PHP5的新特性
接下来请按照顺序看一下被强化的PHP5的性能。首先是最为重要的面向对象性能,类的实体特性在大幅度的被修改着。这里说的仅是关于类的新特性。
· 对象的参照过渡是默认的(default)
· 引入访问属性的限制
· 引入访问方法的限制
· 抽象类和抽象方法
· 接口
· final声明
· 名空间
· 类内常量
· 类变量
· 统一构建器
· 析构函数(Distructor)
· 其他附属特性
作者 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
##PHP5.3的新特性你会有个全新的理解和感悟。
1、首先对之前滥用的语法进行了规范
众所周知PHP在语言开发过程中有一个很好的容错性,导致在数组或全局变量中包含字符串不使用引号是可以不报错的,
2、MySQL驱动Mysqli 提高效率
3、PHP5.3安全和性能的提升
4、延迟静态绑定
PHP的静态是在预编译时就固定好的,所以在继承的时候,父类里的self指的是父类,而不是子类。而php5.3加入了新的语法static,可以在运行时候捕捉当前类
?: 操作符
增强的ini文件支持 INI Magic
CGI/ FastCGI支持类似.htaccess的INI配置
每个目录下都可以有INI设置,ini的文件名取决于php.ini的配置,但是[PATH=/var/www/domain.com], [HOST=www.domain.com]段落的设置用户不能修改。
* CGI/FastCGI 支持".htaccess" 形式的INI控制
* 用户可以自己设定每个目录的INI在php.ini中通过[PATH=/var/www/domain.com]设定
* 优化错误处理
* 允许用户使用INI变量和常量任何定义的INI文件中
* 其他几个小的优化
用户自定义的php.ini(.htaccess) 文件名. 默认为".user.ini"
user_ini.filename = ".user.ini"
8. 扩展的 OpenSSL 函数
* 使用 OpenSSL Digest 函数
foreach (openssl_get_md_methods() as $d) {// MD4, MD5, SHA512... (12 all in all)
echo $d. " - ". openssl_digest("foo", "md5"); // acbd18db4cc2f85cedef654fccc4a4d8
}
增强的error handling
允许在ini文件中定义变量和常量,可以在程序中直接调用。
附上一段ini文件的例子
5、更多新特性
(1)名字空间,用来解决命名被污染
(2)新的魔法函数 __callStatic 原来 __call的静态模式
(3)支持变量调用静态,可以通过$someClass::$method()调用
(4)新增日期函数date_create_from_format
(5)新增了类似JavaScript中的匿名函数和闭包
1. (6)新魔法常量 __DIR__ 来解决路径问题
循环垃圾收集
SPL 添加了新的内容,包括双重链接表、栈、堆和队列的实现,
* 各种各样的数据结构类: 双链表, 堆栈, 队列, 堆, 小型堆, 大型堆, 优先级队列
清单 11. PHP V5.2 及之前版本不能恰当地对父子类关系进行垃圾收集
getopt() 优化
getopt() 优化
* 影响 Windows 平台
* 本地的执行不依赖于本地getopt()实现.
* 跨平台支持长选项 (--option)
// input: --a=foo --b --c
var_dump(getopt("", array("a:","b::","c")));
/* output: array(3) {
["a"]=>
string(3) "foo"
["b"]=>
bool(false)
["c"]=>
bool(false)
} */
XSLT Profiling
* 引入 Xslt Profiling 通过 setProfiling()实现
* 影响 Windows 平台
* 本地的执行不依赖于本地getopt()实现.
##5.4主要包括以下特性:
###1. traits (多继承s解决方案)
Array dereferencing support 数组元素赋值到个变量
Short array syntax []
3.DTrace support
php是一种单一继承的语言,我们无法像java一样在一个class中extends多个基类来实现代码重用,现在Traits能解决这一代码重用的问题,它能让开发者在多个不同的class中实现代码重用。
Traits和class在语义的定义上都是为了减少代码的复杂性,避免多重继承的问题。
Traits提供了一种灵活的代码重用机制,即不像interface一样只能定义方法但不能实现,又不能像class一样
Traits (横向重用/多重继承)是一组结构很像“类”(但不能实例化)的方法,它可以让开发人员在不同的类中轻松地重用方法。 PHP为单继承语言,子类只能继承一个父类,于是Traits来了。
2.Array dereferencing support 数组元素赋值到个变量
DTrace是一个性能分析工具, 可以跟踪出函数调用点,返回点等数据, 对于这个我也不是很了解, 感兴趣的同学可以参看PHP 5.3.99-DEV AND DTRACE PART I
4.Webserver SAPI /// Buid-in web server
最后, PHP5.4还新增了一个SAPI, 这个SAPI将支持直接把PHP当做Websever使用:
PHP5.4内置了一个简单的Web服务器,这样在做一些简单程序就方便多了,省去了环境配置的工作,特别对于初学者来说
$arr = [1,'james', 'james@fwso.cn'];
$fruits = array('apples', 'oranges', 'bananas'); // "old" way
$fruits = ['apples', 'oranges', 'bananas'];
5. Upload progress
Session提供了上传进度支持,通过$_SESSION["upload_progress_name"]就可以获得当前文件上传的进度信息,结合Ajax就能很容易实现上传进度条了。
参考:http://www.laruence.com/2011/10/10/2217.html
6. JsonSerializable Interface
实现了JsonSerializable接口的类的实例在json_encode序列化的之前会调用jsonSerialize方法,而不是直接序列化对象的属性。
参考:http://www.laruence.com/2011/10/10/2204.html
7. Use mysqlnd by default
现在mysql, mysqli, pdo_mysql默认使用mysqlnd本地库,在PHP5.4以前需要:
高精度计时器
此次引入了$_SERVER['REQUEST_TIME_FLOAT']数组变量,微秒级精度(百万分之一秒,float类型)。对于统计脚本运行时间会非常有用:
##5.5新特性
1 生成器 yield关键字
yield的中文文档在这里:http://php.net/manual/zh/language.generators.overview.php
查看文档,能知道yield的一个功能就是能有效的降低迭代的内存开销。比如官网的这个xrange例子:
2 finally关键字
这个和java中的finally一样,经典的try ... catch ... finally 三段式异常处理。
3 foreach 支持list()
4 empty() 支持自定义函数了
之前empty()中的参数是不能为函数的。现在可以了
5 非变量array和string也能支持下标获取了
6 类名通过::class可以获取
7 增加了opcache扩展
使用opcache会提高php的性能,你可以和其他扩展一样静态编译(--enable-opcache)或者动态扩展(zend_extension)加入这个优化项。
##PHP 6 新特性
PHP 6目前已經作為開發者快照使用,所以你可以下載和試用一下這篇文章列出很多特性,這些特性已經在目前的快照中實現了。見資源。
Unicode支援
在PHP的核心函數中,有很多對Unicode字串的支援的改進,這些新特性將產生大幅度的影響因為它允許PHP為國際字元提供更多的支援。所以如果一個開發者或者架構師使用不同的語言,例如Java程式語言,是因為它具有超過PHP的國際化支援的話,當支援改進時他會花一點時間來考慮一下PHP。
因為今天你已經可以下載到開發者
Web 2.0 特性 SOAP
依賴於你怎麼使用PHP和你現在Script的是什麼樣子的,現在的語言和語法差異,可能會或者不會最大程度的影響下面一些特性,這是指那些直接讓你引用的Web 2.0功能到你的PHP應用程式。
SOAP
SOAP是一種網路服務「說 話」的協議,並且支援不少其他語言,例如Java和微軟的.NET,雖然有其他的方法來驅動和使用網路服務,比如 表象化狀態轉變(Representational State Transfer )REST,SOAP仍然在使不同平台具有可操作性中是最常用的。此外,SOAP在PHP擴充和PEAR庫中使用,SOAP在PHP中預設是不支援的,因 此你啟用這個擴充或者叫你的ISP啟用。此外,PEAR包允許你建立SOAP客戶端和伺服器,如SOAP包。
如果你改變了預設設定,SOAP將會在PHP 6中啟用。這個擴充將提供你很容易的的實現SOAP客戶端和SOAP服務,允許你編寫的應用提供使用或者網路服務。
如果SOAP擴充是預設設定,那就意味著你不能在PHP中設定它們,如果您開發的PHP應用程式並且它們發佈到一個ISP伺服器上,您可能需要檢查一下你的ISP,以驗證SOAP並啟用為他們升級。
XML增强
在PHP 5.1中XMLReader 和XMLWriter已經變成PHP核心的一部分,這使你工作起來更輕鬆如果在你的PHP程式中需要使用到XML的話。和SOAP擴充一樣,如果你使用SOAP或者XML這是個好消息因為PHP 6比已經出爐的PHP4 更適合你。
参考
PHP5.0新特性_PHP_中国网管联盟bitsCN.com.htm
PHP V5.3 中的新特性,第 1 部分 对象接口的变化.htm
PHP 5.3 5.4新特性整理 – 【人人分享-人人网】.htm
traits:Traits技术初探 - 大CC - 博客园.htm
PHP5.4发布:新特性与改动_PHP资讯_精品学习网.htm
paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较相关推荐
- 最好的浏览器排行榜_PG是最好的数据库;TiDB 4.0前瞻;SequoiaDB高可用原理;20c DG新特性... 数据库周刊第18期...
热门资讯 1. 2020年4月数据库流行度排行:MySQL 成事实王者,国产openGauss引期待 [摘要]2020年4月 DB-Engines 数据库流行度排行出炉.在本月的排行榜上,Oracle ...
- MongoDB 5.0 来了,原生时序、版本化 API 新特性悉数登场
作者 | 伍杏玲 出品 | CSDN云计算(ID:CSDNcloud) 据 DB-Engines 数据库最新 7 月流行度排行榜显示,前五名十分稳定:Oracle.MySQL.Microsoft SQ ...
- 直播 | RT-Thread 4.0.4 版本代码 Release啦!一起来参与新特性解读会吧~
时光如梭,离RT-Thread 4.0.3 版本的发布已有一段时间了. 今天,我们RT-Thread 4.0.4 版本代码终于Release啦! 细数这一年的变化,真的很多! 内核方面,我们对 IPC ...
- c语言 字符串 正序再倒序_新特性解读 | MySQL 8.0 索引特性3 -倒序索引
原创作者:杨涛涛 我们今天来介绍下 MySQL 8.0 引入的新特性:倒序索引. MySQL长期以来对索引的建立只允许正向asc存储,就算建立了desc,也是忽略掉. 比如对于以下的查询,无法发挥索引 ...
- 全面剖析 Knative Eventing 0.6 版本新特性
前言 Knative Eventing 0.6 版本已经于5月15号正式发布.相比于0.5版本,此次发布包含了一些重要特性及更新.针对这些新特性以及更新,我们如何快速.精准的定位主要技术点.本篇文章针 ...
- 中累计直方图_新特性解读 | MySQL 8.0 直方图
原创作者:杨涛涛 MySQL 8.0 推出了histogram,也叫柱状图或者直方图.先来解释下什么叫直方图. 关于直方图 我们知道,在DB中,优化器负责将SQL转换为很多个不同的执行计划,完了从中选 ...
- ABP 6.0.0-rc.1的新特性
2022-07-26官方发布ABP 6.0.0-rc.1版本,本文挑选了几个新特性进行了介绍,主要包括LeptonX Lite默认主题.OpenIddict模块,以及如何将Identity Ser ...
- Android 6.0新特性
注:本文是从谷歌官网翻译过来的,放这里便于查阅和消化理解,更多详细知识点请自备梯子访问官网~ Android 6.0(API 级别 23)除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种 ...
- mysql3819错误,MySQL 8.0新特性 ― 检查性约束的使用简介
前言 在MySQL 8.0版本中,引入了一个非常有用的新特性 ― 检查性约束,它可以提高对非法或不合理数据写入的控制能力:接下来我们就来详细了解一下. 检查性约束 创建.删除与查看 (1)可以在建表时 ...
- Android Q(10.0 API29)版本新特性和兼容性适配
摘要 1.本文档基于谷歌AndroidQ官方文档和一加Q版本应用兼容性整改指导 2.本文档主要对影响比较大的部分进行简单总结,内容并不全面: 3.版本号对应关系: Android-Q = Androi ...
最新文章
- 影响计算机算法世界的十位大师(上)
- Quartz.Net 调度框架配置介绍
- 2022年初,给5年内还想做产品经理的提个醒!
- 多值参数-数字累加案例演练
- 页面加载图片前用空态图代替真正图片
- string 找出所有数字 index_发现规律,解决整数转罗马数字
- matlab 删除cell 中的 0 元素
- linux 脚本 格式化,Shell脚本批量格式化文件名
- Rational ClearCase批量merge合并
- 大数据可视化平台Demo
- c语言以e为底和以10为底对数,以e为底的运算法则
- 介绍一个免费的开源网站(BootCDN)
- Typec手机有线网卡网线转网口转接口快充方案
- 易捷行云EasyStack入选2021信创云TOP10
- 如何实现微信小程序的横屏及适配
- 利用Python实现word文档合并
- 面试官:关于负载均衡你了解多少 | Nginx面试题 | Nginx架构
- geoserver给天地图添加服务,给线加标注
- Windows的cmd中cd指令切换路径
- 浏览器缓存及实现原理