Как вызвать метод одного объекта из другого объекта? Недавно начал учить ООП в PHP, и при применении знаний на практике возникла проблема. Допустим, у меня есть класс MySQL для соединения с базой данных, и есть другой класс, назовем его Page, где вызывается метод класса MySQL.class MySQL {
public $Vars;
function Connect () {
//code
}
}
class Page {
public $Vars;
function Func () {
$MySQL->Connect();
//code
}
}
$MySQL = new MySQL;
$Page = new Page;
$Page->Func()
Сильно подозреваю, что не понял концепцию ООП. Каким образом можно вызвать метод Connect класса MySQL, без постоянного создания объектов класса MySQL в каждом методе класса Page? Или каким образом вообще реализовать подобную систему?

21 Авг 2019 в 07:09
173 +1
1
Ответы
1

Для того чтобы вызвать метод одного объекта из другого объекта, нужно передать объект в качестве параметра или использовать зависимость между объектами.

В вашем случае, можно передать объект класса MySQL в конструктор класса Page и сохранить его в свойстве:

class MySQL {
public $Vars;
function Connect () {
//code
}
}
class Page {
public $Vars;
private $MySQL;
function __construct(MySQL $MySQL) {
$this->MySQL = $MySQL;
}
function Func () {
$this->MySQL->Connect();
//code
}
}
$MySQL = new MySQL;
$Page = new Page($MySQL);
$Page->Func()

Таким образом, при создании объекта класса Page, мы передаем объект класса MySQL, который затем используется для вызова метода Connect. Это позволит избежать создания объекта MySQL в каждом методе класса Page.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир