Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522

Почему не получается?

28.10.2013, 04:24. Показов 663. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В роутере подключаемому классу передаются параметры (метод и параметры). В главном контроллере есть поля
PHP
1
2
protected $params = array();
protected $method;
и конструктор
PHP
1
2
3
4
function __construct($params = array(), $method = null) {
  $this->method = $method;
  $this->params = $params;
}
В потомках я хочу использовать теперь эти поля не повторяя в текущих контроллерах то же, что и в родителе (даже ч/з parent не хочу вызывать), а просто подставлять эти свойства где надо, но почему-то в потомках эти поля не заполняются тем, что я передаю в роутере. почему?
в ооп не силен, поэтому все смешалось в доме Болконских голове
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2013, 04:24
Ответы с готовыми решениями:

Почему так получается?
Приветствую! Подскажите пожалуйста, не могу понять. Задача: выводить true/false в зависимости о того, делится переменная $a на 2...

Почему хэширование получается рандомным?
Здравствуйте function hasherod($fghjkl,$emiuy,$prrewq) { $saltin = 'euigheiuguTI&Toibvfi8403o8ihbosufhugugIguo8g Почему...

Почему не получается получить данные из БД?
Что я делаю не так??? как правильно сделать выборку??? В БД есть 2 одинаковые таблицы tab1 и tab2 нужно если ip из таблицы tab2 совпадают...

2
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
28.10.2013, 15:44
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
но почему-то в потомках эти поля не заполняются
Давайте код потомков.

Вероятно, потому что:
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
В потомках я хочу использовать теперь эти поля не повторяя в текущих контроллерах то же, что и в родителе (даже ч/з parent не хочу вызывать)
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
29.10.2013, 10:56  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Давайте код потомков.
даю
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Это главный контроллер сайта */
abstract class Controller_Base extends Controller
{
    protected $method;
    protected $params;
    protected $title;       // заголовок страницы
    protected $content;     // содержание страницы
 
    function __construct($params = null) {
      $this->method = $params['method'];
      $this->params = $params['params'];
    }
  // ...
}
а вот, например, класс новостей (либо статей..)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Controller_News extends Controller_Base
{
   /*
       Здесь я хочу использовать поле $params, но для этого мне надо каждый раз писать конструктор во всех потомках.
       В $params находятся параметры из url
   */
   public function __construct($params) {
        parent::__construct($params);
   }
   /* Не красиво как-то */
 
  // Здесь пример использования $params
  public function index() 
  {
       if (!count($this->params)) {
            $this->title = $this->title . ' :: Новости';
            $newsList = new Model_Article();
            $this->news = $newsList->getList();  // Список новостей
       } else {
            $this->preview();
       }
  }
}
Думал как-то параметры из url сохранять и использовать с помощью методов __set и __get, но знаний как-то не хватает.
Если есть идеи их правильное использования здесь или какого-то другого способа, послушаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2013, 10:56
Помогаю со студенческими работами здесь

Что то не так или почему не получается?
Всем привет! У меня есть проблема, а именно, мне нужно написать код, который бы скачивал определённый файл с неизвестным названием, но...

Эмуляция браузера через telnet. Почему не получается?
Добрый день! Читаю Котерова PHP. Глава Эмуляция браузера через telnet. Предлагается ввести в командную строку telnet example.com 80 ...

Почему не получается создать динамическую форму в php
есть задача: для конкретного юзера отображается список всех проектов, над которыми он может работать, напротив каждого проекта есть...

Почему не получается получить и изменить ul через js по id? А что выше id получается
все данные классы находятся в меню шапке 1 работает а 2 нет сайт http://phpstack-189549-661864.cloudwaysapps.com/ ...

Загрузить видео вконтакте. Странно получается. Почему так получается?
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&NR=1&feature=endscreen в максимально...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru