千家信息网

PHP中怎么为匿名函数指定this

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍PHP中怎么为匿名函数指定this,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在PHP中如何为匿名函数指定this?在之前的文章中,我们已经学习过匿名函数的使
千家信息网最后更新 2026年11月02日PHP中怎么为匿名函数指定this

这篇文章给大家介绍PHP中怎么为匿名函数指定this,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

在PHP中如何为匿名函数指定this?

在之前的文章中,我们已经学习过匿名函数的使用,没有看过的小伙伴可以进入传送门先去了解下闭包匿名函数的用法,传送:还不知道PHP有闭包?那你真OUT了。

关于闭包匿名函数,在JS中有个很典型的问题就是要给它绑定一个 this 作用域。其实这个问题在PHP中也是存在的,比如下面这段代码:

$func = function($say){
echo $this->name, ':', $say, PHP_EOL;
};
$func('good'); // Fatal error: Uncaught Error: Using $this when not in object context

在这个匿名函数中,我们使用了 \$this->name 来获取当前作用域下的 $name 属性,可是,这个 $this 是谁呢?我们并没有定义它,所以这里会直接报错。错误信息是:使用了 $this 但是没有对象上下文,也就是说没有指定 $this 引用的作用域。

bindTo() 方法绑定 $this

好吧,那么我们就给它一个作用域,和 JS 一样,使用一个 bindTo() 方法即可。

$func1 = $func->bindTo($lily, 'Lily');
// $func1 = $func->bindTo($lily, Lily::class);
// $func1 = $func->bindTo($lily, $lily);
$func1('cool');

这回就可以正常输出了。bindTo() 方法是复制一个当前的闭包对象,然后给它绑定 $this 作用域和类作用域。其中, $lily 参数是一个 object $newthis 参数,也就是给这个复制出来的匿名函数指定 $this 。而第二个参数 'Lily' 则是绑定一个新的 类作用域 ,它代表一个类型、决定在这个匿名函数中能够调用哪些 私有 和 受保护 的方法,上例中给出的三种方式都可以用来定义这个参数。如果不给这个参数,那么我们就不能访问这个 private 的 $name 属性了:

$func2 = $func->bindTo($lily);
$func2('cool2'); // Fatal error: Uncaught Error: Cannot access private property Lily::$name

call() 方法绑定 $this

在PHP7以后,PHP新增加了 call() 方法来进行匿名函数的 $this 绑定,我们来看看它和 bindTo() 方法有哪些区别。

$func->call($lily, 'well'); // Lily:well


关于PHP中怎么为匿名函数指定this就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

函数 作用 方法 参数 闭包 也就是 内容 对象 小伙 小伙伴 属性 文章 更多 问题 帮助 不错 上下 上下文 也就是说 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 互联网科技有限公司经营范围 涨乐互联网科技 互联网实体化科技化 智腾互联网科技有限公司 移动互联网年度科技创新 恒生互联网科技指数跳水 广州市恰铎互联网科技有限公司 互联网科技人工智能实验室 允成互联网科技有限公司融资 用友工业互联网科技发展 互联网科技公司营业执照怎么办理 互联网方面的科技前沿 富国互联网科技002692 上海创道互联网络科技有限公司 工业互联网科技成果转化 福建互联网展示科技馆设计 保山互联网科技靠谱吗 互联网领先科技成果宣传视频 宁波允成互联网科技有限公司 鑫亿盛互联网科技 无线互联网科技 互联网科技小额贷款 须眉科技是互联网公司吗 承德科技产业互联网发展 厦门比较好的科技互联网公司 杭州披云加互联网科技有限公司 工业互联网科技创业 上海同邻互联网科技有限公司规模 黑龙江互联网科技公司
0