LSDance Опубликовано 8 марта, 2016 Жалоба Поделиться Опубликовано 8 марта, 2016 (изменено) Добрый день товарищи! Если взглянуть в файл IndexView.php, то там можно заметить вот такой кусочек кода // Создаем соответствующий класс if (is_file($this->modules_dir."$module.php")) { include_once($this->modules_dir."$module.php"); if (class_exists($module)) { $this->main = new $module($this); } else return false; } else return false; // Создаем основной блок страницы if (!$content = $this->main->fetch()) { return false; } Откуда берется метод main или же это не метод вовсе? Хотя беглым поиском я по данной конструкции мануала не нашел. Изменено 8 марта, 2016 пользователем LSDance Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 8 марта, 2016 Жалоба Поделиться Опубликовано 8 марта, 2016 это свойство хранит в себе экземпляр нужной view ))) Цитата Ссылка на сообщение Поделиться на другие сайты
LSDance Опубликовано 9 марта, 2016 Автор Жалоба Поделиться Опубликовано 9 марта, 2016 это свойство хранит в себе экземпляр нужной view ))) Хорошо, но ведь это свойство не объявляется в родительском и дочернем классах, я только недавно начал изучать ООП и эта запись ввела меня в ступор, если есть мануал по такому типу объявлений свойств объекта прошу дать ссылку, заранее спасибо. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 Где вы там увидели метод main?Это всего лишь переменная (свойство) Полагаю что по задумке это должно было б обеспечивать доступ к классу модуля из класса view Советую почитать про наследование классов Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 Где вы там увидели метод main?Это всего лишь переменная (свойство) Не так все примитивно просто и прямолинейно. В приведенном коде есть строка$this->main = new $module($this); 1. В выражении $this->main значение main по отношению к $this является переменной.2. Содержимое переменной main класса $this - это уже объект другого класса, у него есть методы и прочее присущее объекту класса. И чуть ниже в строке$this->main->fetch()как раз и наблюдается вызов метода класса. Цитата Ссылка на сообщение Поделиться на другие сайты
LSDance Опубликовано 9 марта, 2016 Автор Жалоба Поделиться Опубликовано 9 марта, 2016 (изменено) Товарищи Kors и yr4ik, спасибо за разъяснения. Получается что $this->main можно было так же записать в виде обычной переменной $main? Изменено 9 марта, 2016 пользователем LSDance Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 (изменено) можно. но тогда она будет доступна лишь в пределах фунции корс прочитай мое сообщение полностью, а не 2 первые строки... Это по прежнему остается (переменной) свойством класса, а что у же в ней (переменной) хранится - не имеет значения. Это может быть и объект и массив и интегер и тд... И методом тут выступает fetch Изменено 9 марта, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 корс прочитай мое сообщение полностью, а не 2 первые строки...yr4ik, сами прочтите мое сообщение полностью. И постарайтесь еще подумать...Это по прежнему остается (переменной) свойством класса...Фраза довольно неопределенная - смысл зависит от того, что считаете за "Это".а что у же в ней (переменной) хранится - не имеет значения...Опять довольно туманно. Не имеет значения - это субъективно: 1. для Вас, может, и не имеет, 2. а для ТС еще как имеет, и в этом половина его вопроса... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 Фраза довольно неопределенная - смысл зависит от того, что считаете за "Это".Это - $this->main Опять довольно туманно. Не имеет значения - это субъективно:1. для Вас, может, и не имеет,2. а для ТС еще как имеет, и в этом половина его вопроса...Туманно - так стекло лобовое протри... Может лучше видеть будешьПро типы переменных: http://www.php.su/learnphp/vars/?types В данном случае $this->main (свойство) и хранит object класса ViewXxx А $this->main->fetch() является вызовом метода fetch из объекта находящегося в свойстве (переменной) $this->main Потому так и написал: Где вы там увидели метод main?Это всего лишь переменная (свойство) специально для тебя Корс. Что такое метод что такое свойство: https://ru.wikipedia.org/wiki/Метод_(программирование)https://ru.wikipedia.org/wiki/Свойство_(программирование) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 Это - $this->main Тогда Ваша фраза становится осмысленной и правильной. Только непонятно, зачем Вы ее написали - ведь с этим никто не спорил - и я еще в #5, п.1 сообщил примерно то же самое. Спасибо за информацию "специально для тебя Корс".Но она несколько общая и не по существу вопроса. Может, Вы будете столь любезны дать подобную информацию со ссылкой поближе к обсуждаемому вопросу: а что у же в ней (переменной) хранится - не имеет значения Желательно с подробными объяснениями - почему не имеет значения, для кого не имеет значения... А пока получается по Вашим фразам так: если во фрагменте из начала темы заменить строку$this->main = new $module($this);например, на$this->main = 68;то работать будет все точно так же, потому что yr4ik сказал, что хранимое в переменной не имеет значения... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 Корс ты дебил! Если тебе не доходит - то иди нахер! Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 9 марта, 2016 Жалоба Поделиться Опубликовано 9 марта, 2016 Корс ты дебил! Если тебе не доходит - то иди нахер!К большому сожалению ему этого никогда не понять. Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 10 марта, 2016 Жалоба Поделиться Опубликовано 10 марта, 2016 Корс ты дебил! Если тебе не доходит - то иди нахер!+1 Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 марта, 2016 Жалоба Поделиться Опубликовано 10 марта, 2016 Корс ты дебил! Если тебе не доходит - то иди нахер!+100500 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.