Соединение с моей базой данных находится в родительском классе Model.Использование static для возврата родительской переменной
Я разрабатываю класс утилиты, в котором у меня никогда не будет экземпляра, поэтому я использую статическое ключевое слово. Мне нужен только доступ к функциям вокруг приложения.
class Model {
function __construct() {
$this->db = new Database(DB_TYPE, DB_HOST, DB_NAME, DB_USER, DB_PASS);
}
}
Это мой родительский класс.
class Fav extends Model{
public static function getFavourite($data){
return $this->db->select('SELECT favouriteid FROM favourite WHERE type = :type AND linkid = :linkid
AND userid = :userid', array('type' => $data['type'], 'linkid' => $data['linkid'],
'userid' => Session::get('userid')));
}
}
У меня проблема с $ этим ключевым словом, поскольку у меня нет экземпляра класса?
Я знаю о родительских и ключевых словах.
Может кто-то разрешить это и показать мне, как я буду связывать правильное ключевое слово здесь!
Заранее благодарен!
вы можете передать '$ db' в качестве параметра статическому методу. Также попытайтесь выяснить дискуссию о _evilness_ статических методов на SO – Ejaz
Кажется, что подавляющее большинство людей не увлекаются статическими методами! – sark9012