1

这是场景:

我有一个没有预定数量的方法的类。有些会是,有些会在哪里function actionName被调用,并将定义它们是什么类型的方法,并且可以是任何东西。function filterName"filter""action""Name"

在我的__construct()我想:

$methods = get_class_methods($this);

foreach ( $methods as $method ) {

  if ( $method == 'action' )
    $this->DoSomething( $this->{$method}() );

  if ( $method == 'filter' )
    $this->DoSomethingElse( $this->{$method}() );

}

如何在不使用任何类型的字符串或 reg 表达式的情况下实现这一点?

我也愿意使用get_class_methods(). 但请记住,我永远不会知道存在多少"action""filter"方法。

4

1 回答 1

1
if (substr($method,0,6) == "action") { }

if (substr($method,0,6) == "filter") { }

我只是检查关键字函数名称的前六个字符链。被警告 - 太多的关键字会扼杀这个性能。

于 2013-04-10T17:53:47.657 回答