帮助将__call与codeigniter一起使用

Ash*_*Ash 1 php ajax codeigniter magic-methods

我在codeigniter中有一个类,它只处理ajax.我在这个类中创建了一个函数来检查refferal是否是一个ajax refferal,我想每次使用这个类中的任何函数时都能调用这个函数.

因此我实施了__call魔术方法

class Ajax_content extends Controller {

    function __construct()
    {
        parent::Controller();


    }

    function __call($method, $arguments){

            $this->ajaxCheck(); //set up to return false and exit.
            call_user_func_array(array($this,"_".$method),$arguments);

        }
Run Code Online (Sandbox Code Playgroud)

目前ajaxCheck()总是回归falseexit()s.但它没有被调用(目前我的ajax请求仍然返回数据)这是解决问题的有效方法吗?

web*_*ave 5

我希望每次使用此类中的任何函数时都能调用此函数

只有在调用不可访问的方法时才会触发__call.如果您希望每次调用控制器方法时都执行某些功能(并且由此我假设您指的是映射到Web请求的方法,而不是类中的任何函数),您应该将此功能放在构造函数中.