学习笔记《php新特性》

我以前用的最熟的PHP版本是php5.2,对php5.3的新增特性也略有了解,但是之后的就没有系统的学习过,今天发现php7的三目运算符有一个新加的,长这个样子“??”,外加 php7.1 即将发布,感觉有必要系统的补充一下,提升代码的质感。个人还是蛮喜欢php5.2之后的语法变化的,有利于缩减代码的结构复杂度,还有行数

官方有详细的功能实现列表,其中可以找到所有未来可能会出现的新变化:
https://wiki.php.net/rfc

《PHP 5.3、5.4、5.5、5.6 中的新特性》
《PHP7发布。最好语言发布了新版本》
《PHP 7.1 新特性一览》

这几篇文章已经整理的相当详细,这里标记一下方便自己复习:

php5.3

  • 支持命名空间
  • 增加后期静态绑定
  • 增加 goto 操作符
  • 添加了原生的闭包(Lambda/匿名函数)支持
  • 新增两个魔术方法, __callStatic 和 __invoke
  • 添加 Nowdoc 语法支持
  • Heredoc 结构中可以用双引号来声明标识符了
  • const 关键字可用来在类定义之外定义常量了
  • 三元运算符可以简写省略中间的部分
  • 异常可以嵌套了
  • 可以动态访问静态变量了
  • mail()函数支持记录发送日志了

php5.4

  • 新增 Traits
  • 新增短数组语法
  • 新增支持对函数返回数组的成员访问解析
  • 无论 php.ini 中是否设置 short_open_tag, 格式总是可用
  • 内置用于开发的 CLI 模式的 web server
  • 新增在实例化时访问类成员
  • 新增了动态访问静态方法的方式
  • 闭包支持 $this
  • 新增二进制直接量
  • session提供了上传进度支持
  • 默认使用 mysqlnd
  • 让 json 更懂中文
  • default_charset从ISO-8859-1已经变为UTF-8

php5.5

  • 引入生成器,新增 yield 关键字,方便做迭代相关的处理
  • 新增 finally 关键字,强化异常处理
  • foreach 支持 list(),强化处理二维数组的能力
  • empty() 支持传入一个任意表达式,而不仅是一个变量
  • 直接通过下标获取访问数组和字符串字面量的元素或字符
  • 新的密码哈希 API
  • 新增 boolval() 函数
  • 新增 array_column() 函数

php5.6

  • 可以使用表达式定义常量,灵活多了
  • 使用 ... 运算符定义变长参数函数,对形参进行强化
  • 使用 ** 进行幂运算
  • use 运算符可以在类中导入外部的函数和常量了
  • 加入 hash_equals() 函数,以恒定的时间消耗来进行字符串比较,以避免时序攻击
  • 加入 __debugInfo(),配合 var_dump() 对类进行调试

php7

  • 基本类型 String Int 也可以用来做类型声明
  • 可以对类的返回值类型进行声明了
  • 新增三目运算符 ?? 减少 isset() 的使用
  • 增加组合比较符 <=>
  • 常量可以被定义为数组了
  • 类也可以匿名了,可以通过 new class 来实现
  • 支持 Unicode codepoint 转译语法
  • Closure::call() 暂时绑定一个方法到对象上闭包并立即调用它
  • 为 unserialize() 增加过滤参数
  • 对 assert() 函数进行功能加强,是单元测试的好伙伴
  • use 语法支持一次性的导入多个类
  • 增加 random_bytes() 和 random_int() 方便取随机数
  • preg_replace_callback_array() 可以传多个匿名函数构成的数组进去
  • session_start() 新增参数可以修改系统设定值
  • Generator::getReturn() 获取生成器的返回值
  • 生成器中可以引入其他生成器

php7.1

  • 参数类型声明和函数返回值声明允许前置“?”操作符,表示一个可空类型
  • foreach 里面的 list 可以用“[]”的形式来表示了,看起来像数组的赋值过程
  • list 在使用的时候允许制定一个 key 值
  • 新增 void 返回类型
  • 类常量开始支持 public private 和 protected
  • 异常处理的时候,catch() 可以捕获多个不同的异常
  • 字符串下标取值支持负数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容

  • PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来...
    梦幻_78af阅读 2,029评论 1 10
  • 把当前目录作为Root Document只需要这条命令即可:php -S localhost:3300 也可以指定...
    绚烂的时光阅读 681评论 0 1
  • 最好的语言发布了新的版本,一个划时代的大版本:PHP7。 PHP7修复了大量BUG,新增了功能和语法糖。这些改动涉...
    人在码途阅读 579评论 2 5
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,059评论 29 417
  • PHP(一)基础语法 本来就是学习笔记,就不说废话了 参考 PHP 手册陈惠贞 , 陈俊荣.PHP 7&MySQL...
    cndaqiang阅读 1,047评论 1 1