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


How to call a method by pointing with a variable

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

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

但是它告诉我:

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

有人解决这个问题吗?

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

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

这很简单,你忘记了括号:

$class->$method;
应该

$class->$method();

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

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