PHP各版本之间差异
PHP5.3
__toString 魔术方法不再接受参数.
魔术方法 __get, __set, __isset, __unset, and __call 应该总是公共的(public)且不能是静态的(static). 方法签名是必须的.
添加了命名空间的支持
增加了goto支持。
新增了两个魔术方法, __callStatic 和 __invoke.
随着匿名函数的加入,PHP 引入了一个新的魔术方法 __invoke().
该魔术方法会在将一个对象作为函数调用时被调用: class A
{
public function __invoke($str)
{
print "A::__invoke(): {$str}";
}
} $a = new A;
$a("Hello World");
输出毫无疑问是: A::__invoke(): Hello World __callStatic() 则会在调用一个不存在的静态方法时被调用。
添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号.就是<<'EOF'这样的语法。
可在类外部使用 const 关键词声明 常量.
三元运算操作符有了简写形式: ?:
PHP5.4
新增traits关键字,使PHP类可以实现多继承
新增短数组语法,比如 a=[1,2,3,4];或a=[1,2,3,4];或a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
新增支持对函数返回数组的成员访问解析,例如 foo()[0] 。
现在不管是否设置 short_open_tag php.ini 选项,<?= 将总是可用。
新增在实例化时访问类成员,例如: (new Foo)->bar() 。
SESSION 扩展现在能追踪文件的 上传进度 。
内置用于开发的 CLI 模式的 web server 。
PHP5.5
新增Finally关键字:http://www.laruence.com/2012/08/16/2709.html
新赠yield关键字,可以在方法中返回多个值所组成的数组
<?php
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Note that $i is preserved between yields.
yield $i;
}
} $generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value\n";
}
?>
增加了opcache扩展
PHP5.6
PHP7
PHP各版本之间差异的更多相关文章
- git日志输出格式及两个版本之间差异列表
查看commit id git log --pretty=format:"%h" git log --pretty=format:"%H" 获取两个版本间差异的 ...
- mongodb不同版本之间有很大的差异
今天主要说下我为了给mongodb数据库添加authorization,大家应该知道,mongo默认是无auth运行的.这可能是方便小伙伴学习命令吧. 由于之前发布的一个项目,在亚马逊的云上,处于内部 ...
- Moq4在.NET3.5和.NET4版本之间的差异
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Moq4在.NET3.5和.NET4版本之间的差异.
- Git抽取版本之间的差异,打包解压
patch.sh文件代码 #!/bin/bash MY_SAVEIFS=$IFS #IFS=$(echo -en "\n\b") IFS=$'\n' build_dir=" ...
- MTK Android Git提取出两个版本之间的差异文件并打包
git提取出两个版本之间的差异文件并打包 首先你得知道版本之间的commit id git log –pretty=oneline $ git log --pretty=oneline 1 差异文件并 ...
- CLR/.NET/C#/Visual Studio/ASP.NET各版本之间的关系(转)
由于这篇文章记录的是2015年7月,那时.net core还是叫做.net core 5 名词定义 下列这些名词,写.NET 的人一定都不陌生,但你是否有真正理解呢?如果看了我的摘要文字说明还无法理解 ...
- [51CTO]给您介绍Windows10各大版本之间区别
给您介绍Windows10各大版本之间区别 随着win10的不断普及和推广,越来越多的朋友想安装win10系统了,但是很多朋友不知道win10哪个版本好用,为了让大家能够更好的选择win10系统版本, ...
- git比较两个版本之间的区别
查看当前没有add 的内容修改: git diff 查看已经add 没有commit 的改动 git diff --cached 查看当前没有add和commit的改动: git diff HEAD ...
- Ubuntu桌面版本和服务器版本之间的区别(转载)
转载自:http://blog.csdn.net/fangaoxin/article/details/6335992 http://www.linuxidc.com/Linux/2010-11/297 ...
随机推荐
- linux中切换用户方式su和su -的区别
Using su The su command allows users to open a terminal window, and from that terminal start a sub ...
- VNC-Server installation on CentOS 7
参考资料: https://www.howtoforge.com/vnc-server-installation-on-centos-7 https://linux.cn/article-5335-1 ...
- MM32/STM32中断和事件梳理
Interrupt_event梳理 预备资料 MM32/stm32中文参考手册 Cortex-M3权威指南(深入了解中断和异常) MM32F103产品手册(配置GPIO的复用功能可能用到) 提出问题 ...
- HTML5与APP的交互
phonegap框架,html5直接用于移动开发的框架.现版本UI延迟据说还是略大. App中搞活动,每次都通过mobile api把url给app即可. App操作Html webview.load ...
- bash:ifconfig command not found for contos7.0
CentOS7刚发布,我忍不住把DELL T410从CentOS6升级到CentOS7.好不容易等安装结束后,立即配置网络,然后在yum源上安装环境.可是执行ifconfig的时候系统提示让我傻了眼: ...
- php插入转义与查找转义
//转义用于查找 function deepslashes($data) { //判断data表现形式 if(empty($data)) { return $data; } return is_arr ...
- Java中 int和Integer的区别+包装类
--今天用Integer 和Integer 比较 发现有问题,于是去查了查. 1.Java 中的数据类型分为基本数据类型和引用数据类型 int是基本数据类型,Integer是引用数据类型: Inget ...
- Java导入证书失败Keystore was tampered with, or password was incorrect
keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect 在进行证书相关操作, ...
- JQuery+Js 获取浏览器高度和宽度
JQuery-------做手机Web开发做浏览器兼容用到了,所以在网上找了些汇总下. alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(docum ...
- iOS中常用的四种数据持久化方法简介
iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...