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 :: Абстрактный класс

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Андрей95
Отправлено: 14 Октября, 2017 - 23:01:58
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Доброй ночи.
Меня волнует одна проблема.

Я создал класс Index:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. class Index extends Core {
  5.         public function url_to_class() {
  6.                 return 'Возможно это сработает.';
  7.         }
  8. }
  9.  
  10.  
  11.  
  12. ?>
  13.  


и класс Core:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. abstract class Core {
  5.         public function test() {
  6.                 echo $this->url_to_class();
  7.         }
  8.        
  9.         abstract function url_to_class();
  10. }
  11.  
  12. ?>
  13.  


Но ругается что класс Core не может создать абстрактный экземпляр.
То есть это
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Fatal error: Cannot instantiate abstract class Core in M:\home\cms_test\www\index.php on line 12
  3.  

Почему?

(Отредактировано автором: 14 Октября, 2017 - 23:03:21)

 
 Top
Строитель Модератор
Отправлено: 15 Октября, 2017 - 00:11:18
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Андрей95 потому что создавать надо экземпляр дочернего класса :
Спойлер (Отобразить)
PHP:
скопировать код в буфер обмена
  1. abstract class Core
  2. {
  3.     public function test() {
  4.         echo $this->url_to_class();
  5.     }
  6.    
  7.     abstract function url_to_class();
  8. }
  9.  
  10. class Index extends Core
  11. {
  12.     public function __construct() {
  13.         parent::test();
  14.     }
  15.    
  16.     public function url_to_class() {
  17.         return 'Возможно это сработает.';
  18.     }
  19. }
  20.  
  21. $obj = new Index; // Возможно это сработает.
 
 Top
caballero
Отправлено: 15 Октября, 2017 - 18:19:42
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Но ругается что класс Core не может создать абстрактный экземпляр

Разумеется, это ж абстрактный класс.
Не очень понятно зачем вы делаете абстрактный класс не удосужившись почитать что это такое и как используется


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB