红酒泡绿茶 2018-01-24 06:18
浏览 260

PHP:在类外定义的回调函数中的访问类方法

I have a class like

class Foo
{
  public function runWithCallback($custom_callback) {
    ...
    return call_user_func_array($custom_callback, [$arg_a, $arg_b]);
  }
  public function aHelperMethod($arg_a) {
    ...
  }
}

And when I use the class like

$foo = new Foo();
$foo->runWithCallback(function($arg_a, $arg_b) {
  ...
  // now I need to use helper method "aHelperMethod"
  $this->aHelperMethod($arg_c); // wrong code
  ...
});

Of course the above code does not work as $this makes no sense in that anonymous function.

Is it possible to do what I intended to? Thx.

  • 写回答

1条回答 默认 最新

  • dongyunwei8596 2018-01-24 06:31
    关注

    Ok thanks to @BilalAhmed 's comment, I found a "dirty" way of doing this:

    $foo = new Foo();
    $foo->runWithCallback(function($arg_a, $arg_b) use ($foo) {
      ...
      // now I need to use helper method "aHelperMethod"
      $foo->aHelperMethod($arg_c); // wrong code
      ...
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗