现如今大家都会选择在网络上汲取相关知识内容,比如2022年01月05日整理发布:在PHP中如何为匿名函数指定this,为了更好的解答大家的问题,小编也是翻阅整理了相应内容,下面就一起来看一下吧!
(相关资料图)
让我们来谈谈如何在PHP中为匿名函数指定这个。相信朋友们应该很关心这个话题。现在我们来谈谈如何在PHP中为朋友的匿名函数指定这个。边肖还收集了关于如何在PHP中为匿名函数指定这一点的相关信息。我希望你看到后会喜欢。
JS中闭包匿名函数的一个典型问题是将其与一个this作用域绑定。其实这个问题在PHP中也存在,比如下面的代码:
$ func=function($ say){ 0
echo $this-name,":",$say,PHP _ EOL
};
$ func(" good ");//宿命论错误:不在对象上下文中时使用: uncaughterror3360在这个匿名函数中,我们使用$this-name来获取当前作用域中的$name属性,但是这个$this是谁呢?我们还没有定义它,所以我们将在这里直接报告一个错误。错误消息是:$this被使用,但是没有对象上下文,也就是说,没有指定$this引用的范围。
1.bindTo方法绑定$this
$func=$func-bindTo($lily,‘Lily’);
//$func=$func-bindTo($lily,lily : CLaSS);
//$func=$func-bindTo($lily,$ lily);
$func1(“酷”);这一次,它可以正常输出。BindTo方法是复制一个当前闭包对象,并用$this作用域和类作用域绑定它。
$lily参数是一个对象$newthis参数,即为复制的匿名函数指定$this。
“Lily”将绑定一个新的类作用域,该作用域表示一个类型,并确定在这个匿名函数中可以调用哪些私有和受保护的方法。
如果我们不给出这个参数,那么我们就不能访问这个private的$name属性:
$ func 1=$ func-Bindto($ lily);
$ func 1(" cool 2 ");//致命错误:未命中错误:无法访问私有财产Lily :3360 $ name2。调用方法绑定$this
$func-call($lily," well ");//lily:好了,PHP中匿名函数就是这么指定的!
来源:php中文网站
上一篇 : 全球视讯!kb和mb换算关系_KB和MB怎么换算
下一篇 : 最后一页