【问题标题】:class variable functions类变量函数
【发布时间】:2023-04-08 16:33:01
【问题描述】:

假设$this->varname 等于is_callable() 返回true 的字符串。要调用它,我必须使用 $temp = $this->varname; $temp(); 或者...是否有另一种方法可以调用它而无需创建两行?

只使用$temp = $this->varname() 的问题在于,它会尝试调用类中名为 varname() 的方法 - 它不会调用 $this->varname 处的函数。

谢谢!

【问题讨论】:

标签: php callable


【解决方案1】:

另一个选项是call_user_func:

call_user_func($this->varname);

【讨论】:

    【解决方案2】:

    您必须这样做或使用call_user_func(_array)。或者,正如 Anthony 在内部 (http://www.mail-archive.com/internals@lists.php.net/msg64647.html) 上向我建议的那样,您可以这样做 ${'_'.!$_=$this->varname}();

    已经存在一个针对 PHP 的拉取请求,正在内部讨论:https://github.com/php/php-src/pull/301(和一个 rfc https://wiki.php.net/rfc/fcallfcall

    【讨论】:

      猜你喜欢
      • 2014-03-04
      • 2021-12-22
      • 2020-06-08
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2013-10-08
      相关资源
      最近更新 更多