Как вызвать метод одного объекта из другого объекта? Недавно начал учить ООП в 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? Или каким образом вообще реализовать подобную систему?
Для того чтобы вызвать метод одного объекта из другого объекта, нужно передать объект в качестве параметра или использовать зависимость между объектами.
В вашем случае, можно передать объект класса 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.
Для того чтобы вызвать метод одного объекта из другого объекта, нужно передать объект в качестве параметра или использовать зависимость между объектами.
В вашем случае, можно передать объект класса 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.