美文网首页马文的地下室
学习笔记《php新特性》

学习笔记《php新特性》

作者: 马文Marvin | 来源:发表于2016-09-21 03:10 被阅读98次

    我以前用的最熟的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() 可以捕获多个不同的异常
    • 字符串下标取值支持负数

    相关文章

      网友评论

        本文标题:学习笔记《php新特性》

        本文链接:https://www.haomeiwen.com/subject/inuoettx.html