请考虑以下代码:
class user{
public function register(){
}
}
我们假设我有两个变量:$class
和$func
,其值分别为user
和register
。
如何使用这两个字符串作为标识符来调用register()
函数?
答案 0 :(得分:5)
我认为你正在寻找这个:
class user{
public static function register() {
echo 'hi';
}
}
$cls = 'user';
$fun = 'register';
$cls::$fun();
请注意,我在那里添加了“static”,否则你需要一个对象:
$obj = new $cls;
$obj->$fun();
答案 1 :(得分:0)
您可以使用$this->register();
从课堂外使用
$user = new User();
$user->register();
答案 2 :(得分:0)
试试这个
$reflection = new ReflectionObject('user');
if ($reflection->hasMethod('register')) {
$object = $reflection->getInstance();
$reflectionMethod = $reflection->getMethod('register');
$result = $reflectionMethod->invoke($object);
}