Скажем $this->varname
равно строке, для которой is_callable()
возвращает true. Для его вызова мне пришлось бы делать $temp = $this->varname; $temp();
$temp = $this->varname; $temp();
или … есть ли другой способ, который я мог бы назвать, не создавая две строки?
Проблема с выполнением только $temp = $this->varname()
заключается в том, что он попытается вызвать метод в классе varname () – он не будет вызывать функцию в $ this-> varname.
Благодаря!
Вы должны сделать это или использовать 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 )
Другой вариант – call_user_func
:
call_user_func($this->varname);