2016-07-12 55 views
0

有两类:公共静态函数的返回值分配给私有变量

class Db { 
    public static function getConnection() { 
     /*Initialize parameters*/ 
     $db = new PDO (...); 
     return $db; 
    } 
} 

类Db的初始化,并返回一个PDO对象。

然后我想要做的另一个类以下内容:

class User { 
    private $db = Db::getConnection(); 
    .... 
} 

我为什么在这里得到一个错误:

private $db = Db::getConnection(); 
+0

错误说的是什么? – Dacaspex

+0

@Dacaspex意外(标识符'getConnection'后 – qazerty23

+0

试试这个http://stackoverflow.com/questions/18050071/php-parse-syntax-errors-and-how-to-solve-them/18092308#18092308通常这些错误表示(或类似的东西) – dios231

回答

0

不知道的错误,这很难说,但我猜测是因为你不能那样做,试试这个。

class User { 
    private $db = null; 

    function __construct(){ 
     $this->db = Db::getConnection(); 
    } 

    public function getFriends(){ 
     return $this->db->query('SELECT * FROM friends'); 
    } 
} 
+0

为什么不只是'private $ db;'? – Dacaspex

+0

我想个人喜好,如果可以的话,我总是给出一个值,尽管它不是必需的 –

+0

@TomHart如果我使用这个选项,$ db只有当我用new操作符创建一个对象时才会被初始化,但是我想在我的User类的方法中使用这个$ db变量 – qazerty23