Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Классы для рисования квадрата и круга
Покинул форум
Сообщений всего: 3
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Только начал изучать ООП. Делаю лабораторную работу.
Нужно создать класс «Фигура», от него два дочерних - «Круг» и «Квадрат». Ну и вывести выбранную фигуру в браузер.
Не выводится изображение. Подскажите, где ошибка?
Без классов всё работает, изображение выводится, параметры из формы передаются.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
djar
Отправлено: 04 Июня, 2011 - 11:01:15
Новичок
Покинул форум
Сообщений всего: 3
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Спасибо. Это потому что я не передаю переменную $figure в функцию, и чтобы работать ней, нужно брать её прямиком из класса посредством $this->, да?
OrmaJever
Отправлено: 04 Июня, 2011 - 12:10:27
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
ещё у вас было так case black:
а нужно так case 'black':
и выскакивал Notice о несуществующей константе и ломал изображение
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Stierus
Отправлено: 04 Июня, 2011 - 19:30:59
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
из замечаний, не влияющий в данный момент на работоспособность:
class Figure должен быть абстратным, т.к. использует ф-и, которые не описаны непосредственно в нем, но обязательно описываемые в чайлдах.
djar
Отправлено: 05 Июня, 2011 - 00:44:13
Новичок
Покинул форум
Сообщений всего: 3
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Stierus, спасибо за замечание, почитал, что это такое)
Можете ответить на тот вопрос, что я задавал выше - почему нужно к перемнной $figure обращаться с помощью $this->figure?
И ещё, я исправил класс «Круг», теперь он выглядит так:
Тут есть переменная $white, я забыл её объявить как свойство класса, но всё отлично работает и так. Всегда ли нужно объявлять свойства? Почему у меня работает код? И наверное уже правильнее использовать private, public и protected вместо var?
И ещё, вот текст задания лабораторной:
Цитата:
Реализовать объект "фигура" и производные от него объекты "круг" и "квадрат". Реализовать для всех них виртуальный метод Show - рисование соответствующей фигуры.
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
djar пишет:
почему нужно к перемнной $figure обращаться с помощью $this->figure?
потому что ко всем свойствам объекта нужно обращатся через $this, иначе это другая переменая (Добавление)
djar пишет:
Тут есть переменная $white, я забыл её объявить как свойство класса, но всё отлично работает и так. Всегда ли нужно объявлять свойства? Почему у меня работает код?
$white у вас не свойство класа, а просто переменая как в обычной функции.
djar пишет:
И наверное уже правильнее использовать private, public и protected вместо var?
Да ключевое слово var уже устарело. Так же методы класа тоже нужно обьвлять как private, public и protected
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.