0

今晚我有一个问题。我会从这样的类中调用一个方法:

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

callMethod('Mymethodname()');

但它告诉我:

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

有人解决这个问题吗?

4

2 回答 2

3

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

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

于 2013-06-09T21:23:47.427 回答
2

很简单,你忘记了括号:

$class->$method;

应该

$class->$method();

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

<?php
function callMethod($name) {
    $class = new Class();
    if(method_exists($class, $name)) { return $class->$name(); }
    else return null;
}
?>
于 2013-06-09T21:25:51.597 回答