2016-07-12 12 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 будет инициализирован только тогда, когда я создам объект с новым оператором.Но я хочу использовать эту переменную $ db внутри моих методов в классе User. – qazerty23