Статические свойства и наследование

bools

Новичок
Статические свойства и наследование

Здравствуйте.
Скажите, в чем я не прав в этом коде.

Мне нужно в класса а хранить статические данные. Инициализация их должна происходить 1 раз (выбор этих данных из БД).
Наследуемый методы(ы) должы иметь в себе эти данные.
У меня что-то не получается.. :(

PHP:
<?
error_reporting(E_ALL);


class a {
	protected static $a1 = null;
	
	private function __construct(){
		self::$a1 = 5;
	}
}

class b extends a{
	protected static $a1 = null;
	
	function __construct(){
		parent::__construct();
	}
	
	function get(){
		return self::$a1;
	}
}


$b = new b();
echo $b->get()."<br>";
?>
ничего не выводит (((
 

itprog

Cruftsman
bools
PHP:
    function get(){
        return self::$a1;
    }
Обращается к $a1 класса 'b', не 'a'. Конструктор класса 'a' меняет $a1 свой, но не класса 'b'.
Решение:
PHP:
    function get(){
        return parent::$a1;
    }
 

bools

Новичок
Да вы что?
PHP:
<?
error_reporting(E_ALL);


class a {
    protected static $a1 = null;
    
    private function __construct(){
        self::$a1 = 5;
    }
}

class b extends a{
    protected static $a1 = null;
    
    function __construct(){
        parent::__construct();
    }
    
    function get(){
       return parent::$a1; 
    }
}


$b = new b();
echo $b->get()."<br>";
?>
Fatal error: Cannot access protected property a::$a1 in c:\internet\home\other\1.php on line 21
 
Сверху