在PHP 5.4.0之前在PHP隐式函数中使用$this

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

我想使用隐式函数方法是定义一个回调,它是某个对象的成员函数.更准确地说,我想做点什么

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

实际上,事件会更好

$callback = $this->my_callback

但是我无法使它工作(当我尝试执行回调时,PHP死于“致命错误函数名必须是字符串”).

解决方法:

应该做的工作:

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

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

有时甚至更好地使用$self或$这样的varname,以便更清楚.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...