За последние 24 часа нас посетили 18804 программиста и 1730 роботов. Сейчас ищут 1057 программистов ...

Получить имя класс наследника в классе родителе.

Тема в разделе "PHP для новичков", создана пользователем bobroff, 9 мар 2010.

  1. bobroff

    bobroff Активный пользователь

    С нами с:
    20 мар 2009
    Сообщения:
    44
    Симпатии:
    0
    Здравствуйте.

    К примеру есть два класса:

    PHP:
    1.  
    2. abstract class iCore_Model_Element_Abstract
    3. {
    4.  
    5.    public static function classinfo()
    6.    {
    7.    }
    8.  
    9. }
    10.  
    и

    PHP:
    1.  
    2. class Model_User_ImageSmall extends iCore_Model_Element_Abstract
    3. {
    4. }
    5.  
    Класс iCore_Model_Element_Abstract является родителем для многих классов, например для Model_User_ImageSmall.

    Необходимо написать метод (возможно статический) в классе iCore_Model_Element_Abstract, который возвращал бы название класса наследника (естественно при условии иннициализации класса).
    Это возможно? Если да, то как?

    Заранее, спасибо...
     
  2. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1.  
    2.  
    3. <?php
    4. class icore {
    5.     function core() {
    6.         $r = new ReflectionClass($this);
    7.         echo $r->name;
    8.     }
    9. }
    10.  
    11. class b extends icore {
    12.    
    13. }
    14.  
    15. $b = new b();
    16. $b->core();
    17.  
    18.  
    19. ?>
     
  3. bobroff

    bobroff Активный пользователь

    С нами с:
    20 мар 2009
    Сообщения:
    44
    Симпатии:
    0
    Спасибо, вроде то что надо.
     
  4. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    get_class($this);
     
  5. bobroff

    bobroff Активный пользователь

    С нами с:
    20 мар 2009
    Сообщения:
    44
    Симпатии:
    0
    В моем варианте не работает...
     
  6. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    bobroff
    Да не пишите же лажу на двух форумах.
    У всех работает, у вас не работает.

    topas, у тебя какая версия php?
     
  7. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Simpliest
    Код (Text):
    1. %php -v
    2. PHP 5.2.12 (cli) (built: Feb  6 2010 03:35:08)
    3. Copyright (c) 1997-2009 The PHP Group
    4. Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Тогда вообще вопросов быть не должно.