调用所有具有前缀的函数

时间:2013-10-18 05:51:16

标签: php php-5.3

PHP可以调用所有具有特定前缀的函数吗?

例如,我有70个功能 最开始于

  

func1 .... func2 ....

我想调用所有以_func1开头的函数 那有什么PHP功能吗?类似于call_user_func,而不是回调名称,以传递类似'_func1*'

的内容

我知道我可以用'get_defined_functions'来做,但想知道是否已有这样的功能。

2 个答案:

答案 0 :(得分:2)

$names=get_defined_functions();
foreach($names["user"] as $f)
{
  if(substr($f,0,6)=="_func1")
   {
       // now call $f
      //  call_user_func($f);
   }

}

答案 1 :(得分:0)

如果您使用的是类中的方法,还可以使用以下命令:

代表:

class myclass {
    // constructor
    function myclass()
    {
        return(true);
    }

    // method 1
    function myfunc1()
    {
        return(true);
    }

    // method 2
    function myfunc2()
    {
        return(true);
    }
}

$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

你可以在循环中使用子字符串方法让它按照你的需要工作