PHP 7 详解
  • 介绍
  • PHP 7 安装
  • PHP 7.0.x 新特性
    • OOP 特性
      • 类型声明
      • 命名空间与use关键词批量声明
      • 匿名类
      • Throwable 接口
    • 新增操作符
      • 太空飞船操作符(<=>)
      • null 合并运算符(??)
    • 统一变量语法
    • 其他特性和变更
      • 常量数组
      • Switch 中的多个default默认值
      • Session_start 函数中的参数数组
      • Unserialize 函数引入过滤器
      • 整数除法函数 intdiv()
      • 补充*其他特性和变更
    • 补充*新函数
    • 补充*新的全局常量
    • 补充*变更的函数
    • 补充*摒弃一些老式的写法
    • 补充*不向后兼容的变更
    • 补充*在SAPI模块的变化
    • 补充*PHP7底层性能优化
  • PHP 7.1.x 新特性
    • 新特性
      • 可为空(Nullable)类型
      • 对称阵列解构
      • Void 函数
      • 类常量访问权限控制
      • 多异常捕获处理
      • list()现在支持键名
      • 支持为负的字符串偏移量
      • 补充*其他特性与变更
    • 补充*新的函数
    • 补充*新增的全局常量
    • 补充:不向后兼容的变更
    • 补充*废弃的特性
    • 补充*变更的函数
    • 补充*其他的变更
  • PHP7 开发工具
    • Eclipse 安装与配置
  • PHP 标准规范及开发技巧
    • PHP 标准规范 - PSR
    • PHP 开发技巧
    • 面向对象编程的基本原则
  • PHP7调试与性能分析
    • 调试 - Xdebug安装配置
      • 使用Eclipse调试
    • 性能分析 - Xhprof
    • 性能分析 - Vld
  • 附录*Ubuntu环境php开发配置
  • 附录*使用php开发扩展
  • 附录*浏览器插件
  • 附录*第三方类库
  • 附录*小问题整理
  • 附录*资料*工具
  • 附录*Composer
  • 附录*前端
  • 附录*进程
  • 附录*PHP的ticks机制
  • 附录* 通过composer发布自己的包
  • 附录*字符编码问题
  • 附录*注释
Powered by GitBook
On this page
  • 其他的变更
  • 使用无效字符串进行算术的注意和警告
  • 警告octal转义序列溢出
  • 没有哈希的会话ID生成
  • 更改INI文件处理
  • 只使用CSPRNG的会话ID生成
  • 当允许NULL时,更多的信息类型错误消息

Was this helpful?

  1. PHP 7.1.x 新特性

补充*其他的变更

Previous补充*变更的函数NextPHP7 开发工具

Last updated 6 years ago

Was this helpful?

参考:

其他的变更

使用无效字符串进行算术的注意和警告

引入了新的E_WARNING和E_NOTICE错误时无效的字符串强制使用运营商预计数字(+ - * / * * % < < > > | & ^)或其等价物。当字符串以数字值开始时,会发出一个E_NOTICE,但是它包含后面的非数值字符,当字符串不包含数值时,会发出一个E_WARNING。

<?php
'1b' + 'something';

以上例程会输出:

Notice: A non well formed numeric value encountered in %s on line %d

警告octal转义序列溢出

以前,3 octet的八进制字符串转义序列将会悄无声息地溢出。现在,它们仍然会溢出,但E_WARNING将被发出。

<?php
var_dump("\500");

以上例程会输出:

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

矛盾解决$this

尽管$this被认为是PHP中的一个特殊变量,但是它缺少适当的检查来确保它不用作变量名或重新分配。现在已经纠正了这一点,以确保$ This不能是用户定义的变量,重新分配给不同的值,或者是全球化的。

没有哈希的会话ID生成

会话id将不再被哈希生成。有了这一变化,就会导致以下4个ini设置的删除:

  • session.entropy_file

  • session.entropy_length

  • session.hash_function

  • session.hash_bits_per_character

加上以下两个ini设置:

  • session.sid_length- 定义会话ID的长度,默认为向后兼容的32个字符

  • session.sid_bits_per_character- 定义每个字符存储的比特数(即增加可以在会话ID中使用的字符的范围),默认为4以支持向后兼容.

更改INI文件处理

精度(precision)

如果值设置为- 1,则使用dtoa模式0。默认值仍然是14。

serialize_precision

如果值设置为- 1,则使用dtoa模式0。值- 1现在默认使用。

gd.jpeg_ignore_warning

这个php的默认值。ini设置已经更改为1,因此默认的libjpeg警告将被忽略。

opcache.enable_cli

这个php的默认值。在PHP 7.1.2中,ini设置已经更改为1(启用)。

只使用CSPRNG的会话ID生成

会话id现在只能用CSPRNG生成。

当允许NULL时,更多的信息类型错误消息

TypeErrorexceptions for arg_info type checks will now provide more informative error messages. If the parameter type or return type acceptsNULL(by either having a default value ofNULLor being a nullable type), then the error message will now mention this with a message of "must be ... or null" or "must ... or be null."

Other changes