- PHP 7 教程
- PHP 7 - 主页
- PHP 7 - 简介
- PHP 7 - 性能
- PHP 7 - 环境设置
- PHP 7 - 标量类型声明
- PHP 7 - 返回类型声明
- PHP 7 - 空合并运算符
- PHP 7 - 宇宙飞船操作员
- PHP 7 - 常量数组
- PHP 7 - 匿名类
- PHP 7 - 闭包::call()
- PHP 7 - 过滤反序列化()
- PHP 7 - 国际字符
- PHP 7 - CSPRNG
- PHP 7 - 期望
- PHP 7 - use 语句
- PHP 7 - 错误处理
- PHP 7 - 整数除法
- PHP 7 - 会话选项
- PHP 7 - 已弃用的功能
- PHP 7 - 删除的扩展和 SAPI
- PHP 7 有用资源
- PHP 7 - 快速指南
- PHP 7 - 有用的资源
- PHP 7 - 讨论
PHP 7 - 闭包::call()
添加Closure::call()方法作为临时将对象范围绑定到闭包并调用它的简写方式。与 PHP 5.6 的bindTo相比,它的性能要快得多。
示例 - PHP 7 之前的版本
<?php class A { private $x = 1; } // Define a closure Pre PHP 7 code $getValue = function() { return $this->x; }; // Bind a clousure $value = $getValue->bindTo(new A, 'A'); print($value()); ?>
它产生以下浏览器输出 -
1
示例 - PHP 7+
<?php class A { private $x = 1; } // PHP 7+ code, Define $value = function() { return $this->x; }; print($value->call(new A)); ?>
它产生以下浏览器输出 -
1