这个问题可能听起来很愚蠢,但我希望这个有用。我有这个代码:
$data['method'] = 'get';
$this->app->$data['method']();
如何将$data['method']
替换为get
但不使用字符串。我试过这个,但没有运气。
$this->app->{$data['method']}();
有什么想法吗?
答案 0 :(得分:1)
这将有效:
call_user_func(array($this->app, $data['method']));
祝你好运。
答案 1 :(得分:1)
如果您使用的是 PHP 5.4.0及更高版本,那么您发布的最后一个代码应该有效。
<?php
class A {
public function foo() {
echo "yes!";
}
}
class B {
public function run() {
$this->a = new A;
$data = [];
$data['method'] = "foo";
$this->a->{$data['method']}();
}
}
$b = new B;
$b->run();
// Prints "yes!"