Я новичок в PHP OOP и понимаю, что «Предупреждение: создание объекта по умолчанию из пустого значения» происходит от объекта, который не инициализируется перед записью, но я изо всех сил пытаюсь понять, почему я получаю сообщение об ошибке со следующим кодом.PHP - передача значений вложенным объектам - Предупреждение: создание объекта по умолчанию из пустого значения
Пожалуйста, помогите!
class A { public $varA; }
class B {
public $varB;
function __construct(){ $varB = new A; }
}
$obj = new B;
$obj->varB->varA = "Whatever";
Что произойдет, если вы даете свой класс 'Ā' конструктор? Кроме того, защищенные свойства не могут быть установлены вне класса IIRC. – miken32
Привет Майк. Конструктор в классе A выполняется нормально, но с использованием $ varA = "test"; в этом конструкторе бессмысленно, его забывают. \t Если я использую $ this-> varA = "test"; как было предложено Герджели ниже, тогда он отлично работает ... если я изменю это защищенное свойство на «публичное», как вы сказали. Должен заметить, что $ varA будет привязан только к функции конструктора, но иногда вы не можете видеть дерево для поиска. Спасибо за помощь. – Robbie
Да, я не заметил отсутствующего '$ this' – miken32