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

вопрос по наследованию

04.12.2010, 08:52. Показов 1045. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
начал изучать ООП в РНР.
нужно уточнение.

имеется класс статей Aticle и дочерний класс NewsArticle, они отличаются тем что у второго есть время создания.
вот егошный код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class NewsArticle extend Article {
     var $datetime
 
  // конструктор
     function NewsArticle() {
        parent::Article($id, $title, $content);
        $this->datetime = time();
     }
  
  // вывод статьи
    function view() {
        echo "<h1>$this->title</h1><span style='color: red'>".
                  strftime('%d.%m.%y', $this->datetime).
                  "<b>Новость</b></span><p>$this->content</p>";
    }
}
теперь вопрос -
у меня в конструкторе содержится строка $this->datetime = time(); и при выводе тоже есть - strftime('%d.%m.%y', $this->datetime),
нельзя ли в конструкторе не писать про время, а оставить только при выводе?

Добавлено через 2 минуты
конструктор function NewsArticle() написан намерено не через __construct, не дошел пока до ООП php5
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2010, 08:52
Ответы с готовыми решениями:

Вопрос по наследованию
Уже неоднократно перечитывал главы про наследования и все равно до конца не разобрался. Вот например у нас есть класс Четырехугольник, и...

Вопрос по наследованию
Вопрос насчёт передачи аргументов в конструктор базового класса(создания временного объекта), а именно почему у меня это не выходит и где у...

Вопрос по наследованию
Вывод Hello СHild Hello Base Что сделать чтобы Base не выводило при подобном вызове? using System; namespace...

2
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.12.2010, 15:09
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
extend
=> extends

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
var $datetime
=> забыли ;
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
parent::Article($id, $title, $content);
=> могу ошибиться, но если Вы используете PHP4, то там еще не было реализовано данное новшество. Такая запись годиться только если метод( свойство ) объявлено как static
К тому же, в классе Article должен быть одноименный метод, который и обрабатывает переданные данные.
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
нельзя ли в конструкторе не писать про время, а оставить только при выводе?
Не совсем понял, что нужно... Что именно Вы имеете ввиду?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class NewsArticle extends Article {
     var $datetime;
 
  // конструктор
     function NewsArticle() {
        parent::Article($id, $title, $content);
     }
  
  // вывод статьи
    function view() {
        $this->datetime = time();
        echo "<h1>$this->title</h1><span style='color: red'>".
                  strftime('%d.%m.%y', $this->datetime).
                  "<b>Новость</b></span><p>$this->content</p>";
    }
}
Или
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class NewsArticle extends Article {
 
  // конструктор
     function NewsArticle() {
        parent::Article($id, $title, $content);
     }
  
  // вывод статьи
    function view() {
        echo "<h1>$this->title</h1><span style='color: red'>".
                  strftime( '%d.%m.%y', time() ).
                  "<b>Новость</b></span><p>$this->content</p>";
    }
}
А может я совсем Вас не понял?
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.12.2010, 20:13  [ТС]
второй случай.
вопрос был такой, нельзя ли из конструктора убрать это - $this->datetime = time();, а ф-ю
view() - оставить как есть?
если убрать из конструктора $this->datetime = time(); - будет ли выводится на время?
если нет, то почему?

Добавлено через 6 минут
>> но если Вы используете PHP4, то там еще не было реализовано данное новшество

использую РНР5, записано как в РНР4, это специально сделано, пока изучаю в общем ООП, без новшеств РНР5. просто вопрос касательно вывода, не пойму просто зачем в конструкцию записывать это поле, нельзя ли просто через в ф-ию view()??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2010, 20:13
Помогаю со студенческими работами здесь

По наследованию
Решил заняться паттернами проектирования и возник вопрос. Допустим есть абстрактный класс public abstract class First { ...

Непонятка по наследованию
Объясните пожалуйста такой момент. Ниже приведу код программы результат ее работы два сообщения: &quot;Поле y=0 Поле y=228 &quot;. Не...

Вопросы по наследованию
Вопрос ещё по конструкторам Допустим есть система классов class A { public: A() {} }; class B: public A {

Работа в Eclipse по наследованию
Создать абстрактный класс Строение (в качестве свойств использовать координаты, количество окон и дверей). Создать массив объектов...

Задачка по наследованию классов
Вот само задание:https://stepik.org/lesson/24462/step/7?unit=6768 Вот мой код: # Заполнение массива n = int(input()) d = {} ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
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 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru