通过字符串调用对象的函数

时间:2014-04-29 09:11:11

标签: php function

请考虑以下代码:

class user{
    public function register(){
    }
}

我们假设我有两个变量:$class$func,其值分别为userregister

如何使用这两个字符串作为标识符来调用register()函数?

3 个答案:

答案 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);                
}