Codeigniter如何获取当前控制器中的所有/特定方法

jun*_*ior 5 php methods controller codeigniter class

我知道这段代码:

$this->router->fetch_class(); // get current controller name
$this->router->fetch_method(); // get current method name
Run Code Online (Sandbox Code Playgroud)

我想要做的是获取当前控制器或特定控制器中可用的所有方法。有人有同样的经历吗?谢谢。

解决方案

我创建助手来列出特定控制器中的所有方法

function list_this_controllers_method_except($controller, $except = array())
{
    $methods = array();

    foreach(get_class_methods($controller) as $method)
    {
        if (!in_array($method, $except))
        {
            $methods[] = $method;
        }
    }

    return $methods;
}
Run Code Online (Sandbox Code Playgroud)

Oli*_* B. 4

您可以使用本机 php 来获取类方法

get_class_methods($this);
Run Code Online (Sandbox Code Playgroud)

$this 是被调用的控制器

仅样品

class user extends CI_Controller {

    public function __construct() {

                #-------------------------------
                # constructor
                #-------------------------------

                parent::__construct();

                var_dump(get_class_methods($this));

            }

}
Run Code Online (Sandbox Code Playgroud)

阅读文档

http://php.net/manual/en/function.get-class-methods.php