Вводная PHP: abstract class Model { public $save = []; abstract protected static function table(); public function __set($name, $value) { if (isset($this->{$name})) { // в этом условии наблюдается косяк $this->save[] = $name; } $this->{$name} = $value; } public function __get($name) { return $this->{$name} ?? null; } public function __isset($name) { return isset($this->{$name}); } public function __unset($name) { unset($this->{$name}); } } Теперь изменяем PHP: class Course extends Model { protected static function table() { return 'course'; } public static function courseHandler($user) { if (in_array($user->course_id, [1, 2, 3, 5, 6, 7])) { $user->course_id++; $user->baks += 100; $user->hp -= 15; $user->hp_up = time(); $user->exp += 5; $user->hit--; $user->hit_up = time(); var_dump($user->save);die(); // EMPTY $user->save(); return; } } } Не могу понять, почему не заполняется массив?
если присмотреться, то объект приходит параметром, удивительно, правда? и никакого значения не имеет, просто дано, как пример
Вас спрашивают о том, что без телепатии никто не в состоянии определить, что делает метод save обьекта user и с какого перепугу должно заполнятся наследуемое свойство save класса course к которому и нужно по идее обращаться.
Так я про то и спрашиваю, где мы можем видеть, какой объект или класс вы туда передаёте? А если он не имеет значения, то можете делать с ним что угодно и вызывать любые несуществующие у ничего методы и свойства....толку не будет
Вы код читать умете? Код (Text): public function __set($name, $value) { if (isset($this->{$name})) { // в этом условии наблюдается косяк $this->save[] = $name; } $this->{$name} = $value; } не заполняется массив save или я по Вашему ерундой страдаю, передаю пустого юзера НЕ вижу его результаты и теперь изменяю ИХ, чтобы заполнинлся массив что за тупая привычка везде на всех форумах начинают выёбыватся --- Добавлено --- а теперь посмотри откуда это свойство отнаследовалось тупица Предупреждение за мат
а вы по человечески понимаете ? Покажите код где вы вызываете класс это, где объекты эти создаете... а то что вы определили место где косяк - так это только ваше мнение. И если хотите чтоб разобрались в вашем коде и вам помогли - постарайтесь адекватно отвечать на поставленные вопросы
PHP: public static function courseHandler($user) { var_dump($user); // что тут? где вы в коде вызываете и как определяете $user ?
ЭТОТ ВОПРОС ДЛЯ ПРОФИ, ОН ТАМ БЫЛ ЗАДАН КТО ЕГО СЮДА ПЕРЕМЕСТИЛ Я НЕ ЗНАЮ, НЕ УМЕЕТЕ ЧИТАТЬ КОД - МИМО ПРОХОДИМ хотя я уже сваливаю нафиг - мне достаточно начала --- Добавлено --- а как Вы думаете я условие блин на изменение пустого объекта начал писать не проверив, что у меня объект прилетел? у меня массив пустой а не объект я про это спрашиваю и носом ткнул в магический сеттер
этому вопросу даже в разделе для новичков не место, не то что "для профи" на лицо отсутствие элементарных базовых знаний, ну и воспитания