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
  • iterable伪类
  • ext/openssl 支持 AEAD
  • 通过Closure::fromCallable()将callables转为闭包
  • 异步信号处理
  • HTTP/2 server push support in ext/curl

Was this helpful?

  1. PHP 7.1.x 新特性
  2. 新特性

补充*其他特性与变更

Previous支持为负的字符串偏移量Next补充*新的函数

Last updated 6 years ago

Was this helpful?

iterable伪类

现在引入了一个新的被称为iterable的伪类 (与类似)。 这可以被用在参数或者返回值类型中,它代表接受数组或者实现了

Traversable 接口的对象。 至于子类,当用作参数时,子类可以收紧父类的iterable类型到或一个实现了Traversable的对象。对

于返回值,子类可以拓宽父类的或对象返回值类型到iterable。

<?php
function iterator(iterable $iter)
{
    foreach ($iter as $val) {
        //
    }
}

ext/openssl 支持 AEAD

通过给 和 添加额外参数,现在支持了AEAD (模式 GCM and CCM)。

通过Closure::fromCallable()将callables转为闭包

Closure新增了一个静态方法,用于将callable快速地 转为一个Closure 对象。

<?php
class Test
{
    public function exposeFunction()
    {
        return Closure::fromCallable([$this, 'privateFunction']);
    }

    private function privateFunction($param)
    {
        var_dump($param);
    }
}

$privFunc = (new Test)->exposeFunction();
$privFunc('some value');

以上例程会输出:

string(10) "some value"

异步信号处理

一个新的名为pcntl_async_signals()的方法现在被引入, 用于启用无需 ticks (这会带来很多额外的开销)的异步信号处理。

<?php
pcntl_async_signals(true); // turn on async signals

pcntl_signal(SIGHUP,  function($sig) {
    echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

以上例程会输出:

SIGHUP

HTTP/2 server push support in ext/curl

对服务器推送的支持现在已经被加入到 CURL 扩展中( 需要版本 7.46 或更高)。这个可以通过函数与新的常量CURLMOPT_PUSHFUNCTION来进行调节。常量CURL_PUST_OK和CURL_PUSH_DENY也已经被添加进来,以便服务器推送的回调函数来表明自己会同意或拒绝处理。

callable
array
array
openssl_encrypt()
openssl_decrypt()
curl_multi_setopt()