2016-07-12 52 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