Передача mysqli в класс для использования функции

Наверное, спросили много раз, но я твердо.

У меня есть следующий класс для управления MySQL db.

class blog { function show ($mysqli) { // Code working on $mysqli here } } 

Поскольку я буду использовать $ mysqli во многих функциях внутри этого класса, я прочитал, что могу создавать конструкторы, чтобы передать переменную $ mysqli в класс и использовать ее внутри каждой функции, чтобы я мог сделать что-то вроде:

 $blog = new blog($mysqli); $blog -> show(); 

Это возможно?

Это называется инъекцией зависимостей .

Просто используйте поле $mysqli в своем классе и инициализируйте его в своем конструкторе и используйте его через $this->mysqli :

 class blog { private $mysqli; function __construct(mysqli $mysqli) { $this->mysqli = $mysqli; } function show () { // Code working on $this->mysqli here } } 

Чтобы сохранить его в классе, было бы что-то вроде:

 class blog { private $mysqli; function __construct($dbi) { $this->mysqli = $dbi; } function show () { $this->mysqli->query(); //example usage // Code working on $mysqli here } } 

А затем в вашем коде использовать класс:

 $blog = new blog($mysqli); $blog->show();