• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php Closure类的使用方法

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

Closure,匿名函数,又称为Anonymous functions,是php5.3的时候引入的。匿名函数就是没有定义名字的函数。这点牢牢记住就能理解匿名函数的定义了。

PHP Closure类之前在PHP预定义接口中介绍过,但它可不是interface哦,它是一个内部的final类。Closure类是用来表示匿名函数的,所有的匿名函数都是Closure类的实例。

$func = function() {  echo 'func called';};var_dump($func); //class Cl<em style="color:transparent">本文来源[email protected]搞@^&代*@码网(</em>osure#1 (0) { }$reflect =new ReflectionClass('Closure');var_dump(  $reflect->isInterface(), //false  $reflect->isFinal(), //true  $reflect->isInternal() //true);

Closure类结构如下:

Closure::construct — 用于禁止实例化的构造函数
Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。
Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。

看一个绑定$this对象和作用域的例子:

class Lang{  private $name = 'php';}$closure = function () {  return $this->name;};$bind_closure = Closure::bind($closure, new Lang(), 'Lang');echo $bind_closure(); //php

另外,PHP使用魔术方法invoke()可以使类变成闭包:

class Invoker {  public function invoke() {return METHOD;}}$obj = new Invoker;echo $obj(); //Invoker::invoke

以上就是php Closure类的使用方法的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php Closure类的使用方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址