Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Добрый день товарищи! Если взглянуть в файл 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 или же это не метод вовсе? Хотя беглым поиском я по данной конструкции мануала не нашел.

      

Изменено пользователем LSDance
Ссылка на сообщение
Поделиться на другие сайты

это свойство хранит в себе экземпляр нужной view   ))) 

Хорошо, но ведь это свойство не объявляется в родительском и дочернем классах, я только недавно начал изучать ООП и эта запись ввела меня в ступор, если есть мануал по такому типу объявлений свойств объекта прошу дать ссылку, заранее спасибо.

Ссылка на сообщение
Поделиться на другие сайты

Где вы там увидели метод main?

Это всего лишь переменная (свойство) 

 

Полагаю что по задумке это должно было б обеспечивать доступ к классу модуля из класса view

 

Советую почитать про наследование классов

Ссылка на сообщение
Поделиться на другие сайты

Где вы там увидели метод main?

Это всего лишь переменная (свойство)

 

Не так все примитивно просто и прямолинейно.

 

В приведенном коде есть строка

$this->main = new $module($this);

 

1. В выражении  $this->main  значение main по отношению к $this является переменной.

2. Содержимое переменной main класса $this  - это уже объект другого класса, у него есть методы и прочее присущее объекту класса. И чуть ниже в строке

$this->main->fetch()

как раз и наблюдается вызов метода класса.

Ссылка на сообщение
Поделиться на другие сайты

Товарищи Kors и yr4ik, спасибо за разъяснения. Получается что $this->main можно было так же записать в виде обычной переменной $main?

Изменено пользователем LSDance
Ссылка на сообщение
Поделиться на другие сайты

можно. но тогда она будет доступна лишь в пределах фунции

 

корс прочитай мое сообщение полностью, а не 2 первые строки...

 

Это по прежнему остается (переменной) свойством класса, а что у же в ней (переменной) хранится - не имеет значения. Это может быть и объект и массив и интегер и тд...

 

И методом тут выступает fetch

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

корс прочитай мое сообщение полностью, а не 2 первые строки...

yr4ik, сами прочтите мое сообщение полностью. И постарайтесь еще подумать...

Это по прежнему остается (переменной) свойством класса...

Фраза довольно неопределенная - смысл зависит от того, что считаете за "Это".

а что у же в ней (переменной) хранится - не имеет значения...

Опять довольно туманно. Не имеет значения - это субъективно:

1. для Вас, может, и не имеет,

2. а для ТС еще как имеет, и в этом половина его вопроса...

Ссылка на сообщение
Поделиться на другие сайты

 

Фраза довольно неопределенная - смысл зависит от того, что считаете за "Это".

Это - $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/Свойство_(программирование)

Ссылка на сообщение
Поделиться на другие сайты

Это - $this->main

 

Тогда Ваша фраза становится осмысленной и правильной. Только непонятно, зачем Вы ее написали - ведь с этим никто не спорил - и я еще в #5, п.1 сообщил примерно то же самое.

 

Спасибо за информацию "специально для тебя Корс".

Но она несколько общая и не по существу вопроса.

 

Может, Вы будете столь любезны дать подобную информацию со ссылкой поближе к обсуждаемому вопросу:

 

а что у же в ней (переменной) хранится - не имеет значения

 

Желательно с подробными объяснениями - почему не имеет значения, для кого не имеет значения...

 

А пока получается по Вашим фразам так: если во фрагменте из начала темы заменить строку

$this->main = new $module($this);

например, на

$this->main = 68;

то работать будет все точно так же, потому что yr4ik сказал, что хранимое в переменной не имеет значения...

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...