Наверное, спросили много раз, но я твердо.
У меня есть следующий класс для управления 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();