玖叶教程网

前端编程开发入门

PHP各个版本之间的更新(自php5.3起)

php5.3

php5.3不向下兼容的特性

  1. php5.3中给函数传递不存在的参数时将返回null,get_class()例外,将返回false
  2. clearstatcache()默认不再清楚缓存的realpath
  3. reapath()现在与平台无关。结果是非法的相对路径比如FILE.”/../x”将不会工作
  4. call_user_func()系列函数即使被调用者是一个父类也使用$this
  5. natsort() natcasesort() usort() uasort() uksort() ,array_flip(),array_unique()不能使用对象参数,需要转化为数组
  6. 函数参数为引用变量,如果按值传递,现在将抛出fatal error
  7. splfileinfo及其相关目录类会移除末尾的/.
  8. __tostring魔术方法不再接受参数
  9. 魔术方法get,Set,unset,isset,and__call需要是public的,不能是static的
  10. 现在__call魔术方法在访问私有的和被保护的方法时会被调用
  11. goto,namespace被保留,不能用作函数名和类名

php5.3新特性

  1. 添加了命名空间的支持
  2. 添加了后期静态绑定的支持
  3. 添加了跳转标签
  4. 添加了原生闭包的支持
  5. 新增callstatic和invoke两个魔术方法
  6. 调价了newdoc,类似单引号的特性
  7. 可以使用heredoc初始化静态变量和类属性
  8. 可使用双引号声明heredoc
  9. 可以在类外部使用const声明常量
  10. 三元运算符有了简写形式:?:
  11. http流包装器200-399状态码都视为成功
  12. 动态访问静态方法变为可能
  13. 异常可以被内嵌
  14. mail()现在支持邮件发送日志

php5.4

php5.4不向下兼容的特性

  1. 不再支持安全模式。
  2. 移除魔术引号。
  3. 移除全局变量regiter_globals
  4. 调用时的引用传递被移除
  5. break和continue语句不再接受可变参数
  6. 数组转换成字符串将产生一条e_notice级别的错误,但返回的结果仍是字符串“array”
  7. null,false,或一个字符串被添加成一个对象的属性时将发出一条e_warning级别的错误,而不是e_strict
  8. 现在参数名使用全局变量将会导致一个致命错误
  9. 当使用两个空数组作为参数时,array_combile()现在返回array()而不是false

php5.4新特性

  1. 新增traits
  2. 新增短数组语法
  3. 新增对函数返回数组成员访问解析
  4. 闭包支持$this
  5. <?=一直可用
  6. 实例化的时候可以访问类成员
  7. 新增二进制直接量
  8. session可以追踪文件的上传进度
  9. 内置wenserver

php5.5

php5.5不向下兼容的特性

  1. 不再支持windowsxp
  2. pack和unpack做了一些变更,pack现在支持Z格式编码,其表现的行为与a相同,同理unpack现在支持z format
  3. 移除了php logo guids

php5.5新增特性

  1. 新增generators,yield
  2. 久违的finally
  3. foreach 支持list()
  4. empty 支持任意表达式
  5. 支持直接调用数组方式
  6. 新的hashapi,password_hash()
  7. 更新gd
  8. 废弃mysql

php5.6

php5.6不向下兼容的特性

  1. 使用数组标识符为类定义数组类型的属性时,数组的键不会被覆盖
  2. json_decode不再接受true,false,null的大写
  3. 必须先设置 CURLOPT_SAFE_UPLOAD 为 FALSE 才能够使用 @file 语法来上传文件。 建议使用 CURLFile 类来上传文件。

php5.6新特性

  1. 可以使用表达式定义常量
  2. 使用…运算符定义变长参数函数,同时可以进行参数展开
  3. 使用**进行幂运算
  4. use 可以导入外部的函数和常量
  5. PHP 的 SAPI 模块中实现了一个 交互式调试器,叫做 phpdbg
  6. iconv 一废弃
  7. php://input可以重用,可以降低内存使用
  8. 支持大于2gb的文件上传

php7.0

php7.0不向下兼容的特性

  1. 变量解析严格按照从左到右的方式
  2. list() 不再以反向的顺序来进行赋值,空的list()赋值支持已经被移除,list()不再能解开string
  3. global 只接受简单变量,不再接受可变变量
  4. foreach不再改变内部数组指针 ,foreach 通过值遍历时,操作的值为数组的副本
  5. 十六进制字符串不再被认为是数字
  6. filter_var() 函数可以用于检查一个 string 是否含有十六进制数字,并将其转换为integer
  7. call_user_method() and call_user_method_array()被移除
  8. socket系列被移除,使用stream系列代替
  9. new 操作符创建的对象不能以引用方式赋值给变量

php7.0新特性

  1. 标量声明
  2. 返回值类型声明 function test():array
  3. null合并运算符,三元表达式合并
  4. 组合比较符
  5. define定义常量数组 define(“test”,[1,2,3])
  6. 增加匿名类
  7. closure::call,简短干练的暂时绑定一个方法到对象上闭包并调用它
  8. 为unserialize()提供过滤
  9. intdiv整除

php7.1

php7.1不向下兼容的特性

  1. 当传递参数过少时将抛出错误
  2. 对字符串使用一个空索引操作符(例如$str[] = $x)将会抛出一个致命错误, 而不是静默地将其转为一个数组。
  3. 析构方法在一个不完整的对象(例如在构造方法中抛出一个异常)上将不再会被调用

php7.1新特性

  1. 可为空(Nullable)类型,类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null 。可以通过在类型前面加上一个问号来使之成为可为空的。
  2. Void 函数
  3. 类常量可见性
  4. 多异常捕获处理 catch (FirstException | SecondException $e)
  5. list()现在支持键名
  6. http2 server_push 在curl中可以使用

记录一下,坚持


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言