如何通过使用变量指向来调用方法

时间:2013-06-09 21:20:23

标签: php

今晚我遇到了问题。我会从类中调用这样的方法:

function callMethod($method) {
    $class = new Class();
    $class->$method;
}

callMethod('Mymethodname()');

但它告诉我:

  

注意:未定义的属性:Class :: $ Mymethodname();

有人解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

你试过$class->$method();吗? 但是在尝试调用之前,你应该检查$ method是否是一个有效且可调用的函数名。

if (method_exists($class, $method)) $class->$method();

答案 1 :(得分:2)

很简单,你忘记了括号:

$class->$method;

应该是

$class->$method();

此外,您应该检查所述方法是否可用:

<?php
function callMethod($name) {
    $class = new Class();
    if(method_exists($class, $name)) { return $class->$name(); }
    else return null;
}
?>