gpt4 book ai didi

php - 在 PHP 5.4.0 之前的 PHP 隐式函数中有 $this

转载 作者:可可西里 更新时间:2023-11-01 00:46:30 26 4
gpt4 key购买 nike

根据 http://php.net/manual/en/functions.anonymous.php ,在 PHP 5.3 中,$this 无法从隐式函数内部访问,即使该函数是在 $this 存在的上下文中定义的。有什么办法可以解决此限制? (顺便说一句,升级 web 服务器上的 PHP 安装是不可能的)

我想使用隐式函数的方式是定义一个回调,它是某个对象的成员函数。更准确地说,我想做类似的事情

$callback = function() { return $this->my_callback(); }

实际上,更好的事件语法是

$callback = $this->my_callback

但我无法让它工作(当我尝试执行回调时,PHP 死于“ fatal error :函数名称必须是字符串”)。

最佳答案

应该做的工作:

$object = $this ;
$callback = function() use ($object) { return $object->my_callback(); } ;

use 会将可访问变量(在我们的例子中是对象的引用)声明为函数作用域,因此您不必将其作为参数发送。

有时使用 $self$that 这样的变量名会更好,这样会更清楚。

关于php - 在 PHP 5.4.0 之前的 PHP 隐式函数中有 $this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17307499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com