加载模型类时,::不适用于静态方法 - Codeigniter

时间:2017-03-07 07:05:11

标签: php codeigniter

考虑下面的代码,Iam使用codeigniter 3.0

Xmodel.php
---------------------
class Xmodel {
    public static function get(){

    }
}

Ymodel.php
------------------------
class Ymodel(){
    public function run(){
         $this->load->model('XModel', 'x');
         $this->x::get(); // syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)
         $this->x->get(); // works as expected
    }
}

我怀疑get()是否为静态方法,为什么它不与::运算符一起使用。作为参考What does this mean? "Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM"在这个问题中,该方法也是静态的,但他们没有证明为什么他们使用->作为静态方法。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

class Ymodel(){
     public function run(){
         $this->load->model('XModel', 'x');
         $a = $this->x; // save to a var
         $a::get(); // works as expected
     }
}

https://stackoverflow.com/a/11520244/3205479这救了我。希望有些人不会因为这种php bug而再次受苦。