Ответы

Есть два класса. Вызвать метод второго класса из первого.

Класс A создает в себе два экземпляра класса B. Позже при попытке вызвать метод set() класса В, я получаю ошибку. Что не так?

class A{
public$cart;
public$fav;

function __construct() {
$cart=new B(1);
$fav=new B(2);
return $this;
}
}

class B{
public function set(){
//делаем что-нибудь
}
function __construct($type){
}

}

$mycart=new A();
$mycart->cart->set();

Fatal error: Call to a member function set() on a non-object

Дополнен

Решено: в конструкторе класса А забыл поставить $this->

По дате
По рейтингу
Аватар пользователя
Просветленный
9лет

Потому, что в конструкторе переменная $cart у тебя получается как локальная переменная метода, а нужно ее задавать через $this->cart

Аватар пользователя
Ученик
9лет

$this->cart = new B(1);
$this->fav = new B(2);

Аватар пользователя
Ученик
9лет

Переходи на Python, там все понятнее)))