首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >闭包的PHP7类型是什么?

闭包的PHP7类型是什么?
EN

Stack Overflow用户
提问于 2018-05-31 06:06:44
回答 1查看 1.1K关注 0票数 2

这是代码,它是一个简单的容器。

代码语言:javascript
复制
class Application
{
  private $recipes;
  private $instances;

  public function configureCache(XXXXXXXX $closure) {
    $recipes['cache'] = $closure;
  }

  public function getCache(): Cache {
    if (empty($instances['cache'])) {
      $instances['cache'] = $recipes['cache']();
    }
    return $instances['cache'];
  }
}

这段代码在PHP 7.1+上运行。我可以为XXXXXXXX填写什么以使其最具体?类型是一个函数,更具体地说,是一个返回Cache的函数。

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 06:11:22

PHP支持可调用实体的几种语法:包含函数名的字符串、对象和方法的数组、静态方法中的类和方法的数组、第一类闭包和生成的闭包。

所有这些的类型提示都是callable

如果你只想要匿名函数,也就是一流的闭包,那就使用Closure。但这将限制您可以接受的callable类型。

到目前为止,PHP还不支持正式的可调用参数上的参数提示或返回类型提示:例如,您的代码不能只接受接受一个字符串参数并返回布尔值的闭包。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50613983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档