четверг, октября 05, 2006

PHP static class name solution

При разработке обобщенного кода, бывает необходимо узнать класс из статического метода.
т.е. если у нас есть классы BaseTag, ConcreteTag то необходимо чтобы при вызове ConcreteTag:find_all() в методе find_all() была возможность определить что метод вызван именно для класса ConcreteTag. В PHP нет такой возможности

предлагается использовать debug_backtrace() чтобы получить эту информацию


function get_class_static()
{
$bt = debug_backtrace();
// note that we are using $bt[1] instead of $bt[0];
//$bt[0] would return the get_class_static function rather than the calling class
$name = $bt[1]['class'];
return $name;
}

Source of Solution

Ярлыки:

Комментарии: 4:

Anonymous Анонимный сказал(а)...

ерунда какая то.

вот
get_class($this)
....

или
is_a($this,'NeededClassName')

24 апреля, 2008 14:44  
Blogger Sergey сказал(а)...

@Анонимный

ключевое слово "из статического"

24 апреля, 2008 17:30  
Anonymous Анонимный сказал(а)...

[color=#58a]Музыкальная группа [url=http://dejavu-group.ru/artist.php]Дежа вю[/url] - это коллектив виртуозных вокалистов и музыкантов.
[url=http://dejavu-group.ru/about_us.php]Дежа вю[/url]- лидер в области организации и проведения музыкальных мероприятий, свадеб, юбилеев.
В репертуаре Музыкантов Dejavu-group около 3000 песен.
Живая музыка. Диско, хиты 70-80-90-х, джаз, ретро, шансон, современная музыка, европейские хиты, фоновая музыка, поп .
Музыкальная группа Deja Vu располагает мощной качественной аппаратурой, которая позволяет заполнить приятным уху звуком как компактное помещение (фуршет), так и огромное помещение (корпоратив до тысячи человек).

Игорь +7 916 623 4047 [/color]

24 декабря, 2009 21:09  
Anonymous Анонимный сказал(а)...

[color=#58a]Музыканты на праздник [url=http://dejavu-group.ru/about_us.php]Дежа вю[/url] - это коллектив профессиональных вокалистов и музыкантов на праздник.
[url=http://dejavu-group.ru/svadba.php]Deja Vu[/url]- лидер в области организации и проведения свадеб, дней рождения, корпоративных вечеров, шоу программ.
В копилке музыкального ансамбля Deja Vu около 3 тыс. песен.
Живая музыка. Диско, хиты 70-80-90-х, джаз, ретро, шансон, современная музыка, европейские хиты, фоновая музыка, поп .
Музыканты Deja Vu располагает мощной качественной аппаратурой, позволяющей заполнить приятным и плотным уху звуком как небольшое помещение (фуршет), так и большое пространство (корпоратив до тысячи человек).

Игорь +7 916 623 4047, Андрей +7 910 483 8294 [/color]

24 января, 2010 13:53  

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница