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 :: Прошу помощи с ООП - OOP abstract class static self::
Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2013
Помог: 0 раз(а)
Прошу помощи с ООП - OOP abstract class static self::
Хоть убейте не могу сделать код так чтоб все работало... Ошибки - то декларация не та, то со STATIC проблемы, то ABSTRACT CLASS неправильно определен...
Задача: написать класс для загрузки различных файлов на сервер. Работать все должно без создания объектов(без создания ссылок на объекты), использовать static =>
ИМХО: соответственно супер-класс должен быть абстрактным, иметь общий метод для загрузки файла, и абстрактный метод проверки файла(на тип/размер). А в дочернем классе реализовать метод проверки.
Я не знаю есть ли другие способы(если да, то подскажите пожалуйста), но чтобы вызвать какой либо метод, без объектов(ссылок на объекты) надо использовать инструкции типа: self:: или parent:: (или NAME_CLASS: - но не одна из этих инструкций у меня не работает при вызове этого метода реализованного в дочернем классе. Я баловался со STATIC - перепробовал все варианты - но не работает - Всегда ошибки типа:
Фатальная ошибка: Декларация UploadFile :: CheckFile () должен быть совместим с публикации :: CheckFile ()
Уже голова болит - у меня ломка мозга с этим ООП и с тремя китами...
Прошу помогите... Возможно ли вообще то, что я задумал(без объектов, и тд.)
Заранее СПАСИБО!
esterio
Отправлено: 28 Ноября, 2013 - 16:04:27
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
а зачем статическые методы и свойства в абстрактном классе?
Как их переделать, так чтоб работала конструкция:
UploadFile::UploadFile($_FILES['formFile']);
вместо двух конструкций:
$uploadFile = new UploadFile;
$uploadFile->uploadFile($_FILES['formFile']);
Invert
Отправлено: 16 Декабря, 2013 - 23:35:44
Частый гость
Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010
Помог: 5 раз(а)
vyacheslavbely пишет:
я знаю, как его делать с использованием ссылок на объект
Да не знаете вы нихрена. Зачем вам абстрактный класс? Вот спросите себя, ЗАЧЕМ? Есть внятный ответ? Вы лезете в электро-щиток, не понимая, чем отличается вольт от ампера.
Вот вам, читайте: Мэтт Зандстра - PHP. Объекты, шаблоны и методики программирования.
И не говорите, что знаете как пользоваться объектами, пока не прочтете.
Зачем parent? В дочерном классе нет значения $whitetypes, то есть нужно использовать self::$whitetypes
esterio пишет:
Уже голова болит - у меня ломка мозга с этим ООП и с тремя китами...
Прошу помогите... Возможно ли вообще то, что я задумал(без объектов, и тд.)
Можно, и очень просто реализуется. Только нужно понимать, что такое вилка, чем она отличается от ложки, и как не выколоть глаз себе и соседу используя ее. Читайте книги, много читайте.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.