как узнать имя сыновьего класса

texrdcom

Новичок
как узнать имя сыновьего класса

PHP:
<?php
class test
{
	function __construct()
	{
		echo __CLASS__;
	}
}

class test2 extends test
{
	function __construct()
	{
	//Понимаю если передать а конструторе родиля __CLASS__ то получим имя сына но может както автоматичски можно полуить имя сыновьего класса ?
	parent::__construct();
	}
}

new test2();
// выводит: test
?>
Понимаю если передать а конструторе родиля __CLASS__ то получим имя сына но может както автоматичски можно полуить имя сыновьего класса ?
 

texrdcom

Новичок
Спасибо

-~{}~ 09.12.05 14:35:

А для чего тебе это, если не секрет?
А очень просто есть класс предок для не которого количества
классов эти классы вызывают автоматически конструктор предка а он относительно имени класса который его вызвал
получает данные с - грубо говоря конфиг файла в котором забито имя ссыновьего класса. - автоматом после создания обькта ссыновьего класса.
 

whirlwind

TDD infected, paranoid
> конструктор предка а он относительно имени класса который >его вызвал
>получает данные с - грубо говоря конфиг файла в котором >забито имя ссыновьего класса

Это бессмысленно. Наследуя класс, получаем методы и атрибуты родителя как неотъемлемые элементы нового класса. Это значит что

PHP:
class test{
    function load_config($name){
        ...
    }
}

class test2{
     function __construct(){
          $this->load_config(__CLASS__);
           // то же что и
           parent::load_config(__CLASS__);

     }
}
 

texrdcom

Новичок
Молодец не так !
parent::load_config(__CLASS__);

да эта фунция вызываеться тольк если у меня есть имя сыновьего класса то мне не надо делать такой вызов!
я вызываю проще $this->load_config();
А имя ссыновьего класса уже добавил конструтор предка в защищенный атрибут! и его использует функция $this->load_config();!
Это спроектированно так что данная ирархия не будет глубокой максимум два класса. предок сын
 

whirlwind

TDD infected, paranoid
Вот блин... И не лень писать лишний оператор $this->blablabla=__CLASS__, вместо того, что бы использовать аргумент, что позволит использовать метод для загрузки любого "грубо говоря" когфига, тем самым унифицировать и нормализировать механизм....
 

texrdcom

Новичок
whirlwind
Ты что то путаеш смотри певрое мое сообщение - кометарии
я ведь писал что понятно можно получить имя если передать параметром __CLASS__ - но я хотел от этого избавиться и достать имя автоматом!
понятно что если ирархия будет больше чем два , все равно без __CLASS__ не обойтись но этого не планируеться!
 

whirlwind

TDD infected, paranoid
Да вроде все правильно я понял судя

> А имя ссыновьего класса уже добавил конструтор предка в защищенный атрибут

Если все же нет, то наверняка так

$this->blablabla = class_name($this);

Но ИМХО это бред, потому что
PHP:
class test 
{ 
    function load_config() 
    { 
        echo __CLASS__,"\n"; 
         echo get_class($this);
    } 
} 

class test2 extends test 
{ 
	function test2(){
		$this->load_config();
	}

}
 

texrdcom

Новичок
так выведет два разнных значения !
а надо одинаковые!

-~{}~ 09.12.05 15:23:

Предлагаю обсущдения прекратить - нет смысла и по обсужадть что то более нужное ! :)
 

whirlwind

TDD infected, paranoid
:) Так надо узнать имя класса, или что бы имя класса совпало со значением __CLASS__ ? Я про то, что

> имя ссыновьего класса уже добавил конструтор предка в защищенный атрибут

бессмыслено
 
Сверху