|
|
|
|
class A {
protected static function get(){
// возможно ли здесь получить значение B::$property ?
}
}
class B extends A {
public static $property = 'value';
public static function get() {
parent::get();
}
}
|
| |
|
|
|
|
|
|
|
для: Суррогат
(14.12.2010 в 16:38)
| | так разве не работает:
echo B :: property
? | |
|
|
|
|
|
|
|
для: psychomc
(14.12.2010 в 16:47)
| | ща по другому сформулируем :)
class A {
protected static function get(){
// возможно ли здесь получить: СhildСlass::$property ?
}
}
class B extends A {
public static $property = 'value';
public static function get() {
parent::get();
}
}
class С extends A {
public static $property = 'value';
public static function get() {
parent::get();
}
}
|
| |
|
|
|
|
|
|
|
для: Суррогат
(14.12.2010 в 16:53)
| |
class A {
protected static function get($class){
echo $class::$property;
}
}
class B extends A {
public static $property = 'value1';
public static function get() {
parent::get(__CLASS__);
}
}
class C extends A {
public static $property = 'value2';
public static function get() {
parent::get(__CLASS__);
}
}
C::get();
|
| |
|
|
|
|
|
|
|
для: ride
(14.12.2010 в 17:35)
| | если E_STRICT
выдает ошибку
Strict standards: Declaration of B::get() should be compatible with that of A::get()
есть конечно выход
class A {
protected static function get($class){
echo $class::$property;
}
}
class B extends A {
public static $property = 'value1';
public static function get($prop = false) {
parent::get(__CLASS__);
}
}
class C extends A {
public static $property = 'value2';
public static function get($prop = false) {
parent::get(__CLASS__);
}
}
C::get();
|
но мне кажется это не совсем правильно.... | |
|
|
|
|
|
|
|
для: Суррогат
(14.12.2010 в 18:25)
| | я забыл переименовать метод get в родителе
он ведь у вас все равно защищенный.
class A {
protected static function _get($class){
echo $class::$property;
}
}
class B extends A {
public static $property = 'value1';
public static function get() {
parent::_get(__CLASS__);
}
}
class C extends A {
public static $property = 'value2';
public static function get() {
parent::_get(__CLASS__);
}
}
C::get();
|
| |
|
|
|