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]   

> Описание: Вопрос про наследование
Haron
Отправлено: 31 Января, 2012 - 03:27:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 197
Дата рег-ции: Июнь 2010  
Откуда: Оттуда


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




Допустим есть цепочка наследования из X классов:

PHP:
скопировать код в буфер обмена
  1. class A
  2. {
  3.  
  4. }
  5.  
  6. class B extends A
  7. {
  8.  
  9. }
  10.  
  11. ......
  12. ......
  13.  
  14. final class F extends E
  15. {
  16.  
  17. }


Встал вопрос получения массива имён классов, в порядке их наследования. Очевиден такой способ:

PHP:
скопировать код в буфер обмена
  1. class A
  2. {
  3.     protected $ext = array();
  4.    
  5.     function __construct()
  6.     {
  7.         $ext[] = __CLASS__;
  8.     }
  9. }
  10.  
  11. class B extends A
  12. {
  13.     function __construct()
  14.     {
  15.         $ext[] = __CLASS__;
  16.     }
  17. }
  18.  
  19. .....
  20. .....
  21.  
  22. final class F extends E
  23. {
  24.     function __construct()
  25.     {
  26.         $ext[] = __CLASS__;
  27.         print_r($this -> ext);
  28.     }
  29. }
  30.  
  31. new F();
  32.  
  33. /*
  34. Напечатает:
  35. array(
  36.     0 => A, 1 => B, ... 4 => E
  37. )
  38. */


Отлично... Но вот только выглядит это как костыль, или валасапед с введением "лишней" переменной. Есть ли какое-то стандартное решение в языке, позволяющее сразу и без подобных костылей получить подобный массив цепочки наследования?


-----
И чё?
 
 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