пятница, 23 июля 2010 г.

Как получить имя класса из наследуемого статического метода в PHP

PHP: get classname from static call in extended class. - Stack Overflow:

"__CLASS__ always returns the name of the class in which it was used, so it's not much help with a static method. If the method wasn't static you could simply use get_class($this). e.g.

class Action {
public function n(){
echo get_class($this);
}

}

class MyAction extends Action {

}

$foo=new MyAction;

$foo->n(); //displays 'MyAction'

Late static bindings, available in PHP 5.3+

Now that PHP 5.3 is released, you can use late static bindings, which let you resolve the target class for a static method call at runtime rather than when it is defined.

While the feature does not introduce a new magic constant to tell you the classname you were called through, it does provide a new function, get_called_class() which can tell you the name of the class a static method was called in. Here's an example:

Class Action {
public static function n() {
return get_called_class();
}
}


class MyAction extends Action {

}


echo MyAction::n(); //displays MyAction

Отправлено через панель инструментов Google:"

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

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