Как вызвать внутри метода одного класса метод другого класса в php? Есть классы:class DataBase{
public function name1(){
//
}
}
class User(){
public function name2(){
// Здесь нужно вызвать метод name1() из класса DataBase
}
}
Пробую:protected $db;
public function __constructor(DataBase $DB)
{
$this->db = $DB;
}
public function name2(){
$this->db->name1();
}
Ошибка:
Call to a member function name1() on null in...
Работает только в том случае, если я инициализирую класс внутри метода name2().

21 Авг 2019 в 07:00
192 +1
0
Ответы
1

Для того чтобы вызвать метод name1() из класса DataBase внутри метода name2() класса User, нужно сначала создать объект класса DataBase в конструкторе класса User и сохранить его в свойстве $db.

Далее, в методе name2() вы сможете вызвать метод name1() через сохраненный объект $db. Вот пример исправленного кода:

class DataBase{
public function name1(){
// код
}
}
class User{
protected $db;
// Создаем объект класса DataBase и сохраняем его в свойство $db
public function __construct(DataBase $DB){
$this->db = $DB;
}
public function name2(){
$this->db->name1(); // Вызываем метод name1() из класса DataBase
}
}
// Создаем объект класса DataBase
$DB = new DataBase();
// Создаем объект класса User и передаем ему объект DataBase
$user = new User($DB);
// Вызываем метод name2()
$user->name2();

Теперь метод name2() класса User должен успешно вызывать метод name1() из класса DataBase.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир