Say $this->varname
等于is_callable()
返回true的字符串。要打电话给我,我必须做$temp = $this->varname; $temp();
或......还有另一种方式我可以调用它而不必创建两行吗?
只做$temp = $this->varname()
的问题是,它会尝试调用名为varname()的类中的方法 - 它不会在$ this-> varname上调用该函数。
谢谢!
答案 0 :(得分:1)
另一个选项是call_user_func
:
call_user_func($this->varname);
答案 1 :(得分:1)
您必须这样做或使用call_user_func(_array)
。或者正如安东尼向我建议的内部(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)