调用静态方法,其中方法名称存储为变量

时间:2015-03-29 03:59:50

标签: php class

当我想调用的方法存储在变量中时,如何调用类的静态方法?

例如:

$action = "myMethod";
MyClass::$action("some argument");

这可能会导致与此相同:

MyClass::myMethod("some argument");

2 个答案:

答案 0 :(得分:1)

你这样做:

call_user_func(array('MyClass', $action), 'some argument');

参考文献:

答案 1 :(得分:-1)

我不确定你是否在谈论代表。但是在Variable中存储函数/方法称为Delegates。我将发布2个例子。

require_once('classes.php');

$pkg = new Package("Heavy Package");
$pkg->setWeight(100);

$shipper = new ShippingDelegate();

if ($pkg->getWeight() > 99)
{
    $shipper->useRail();
}

$shipper->deliver($pkg);

第一个具有Method类的参数。另一个调用它的类构造函数。

我希望这会有所帮助。