вызов private function __construct()

r-tem

Новичок
вызов private function __construct()

PHP 5
Не получается создать объект класса с private-конструктором

PHP:
class contentClass{
	public function __construct(){
        $cm=new contentModules();
}
class contentModules{
	private function __construct(){
        ...
        }
}
Выдает:
Fatal error: Call to private contentModules::__construct() from context 'contentClass' ...
Заранее спасибо...
 

romy4

invoke [brain]
r-tem
а чего ты хотел?
класс contentModules никак не относится к contentClass и вызов приватного метода ес-сно вызывает ошибку
 

romy4

invoke [brain]
я так понимаю, ты хочешь защитить contentModules от создания экземпляра?
можешь наследовать
PHP:
class contentClass extends contentModules
исправив
PHP:
private function __construct()
на
PHP:
protected function __construct()
 

r-tem

Новичок
2 romy4 - наследование врядли подойдет...
Просто я в книге вычитал, что есть такой прием, когда ставишь на конструкторе private, и его класс можно вызвать только из тела другого класса(насколько я понял...видимо неправильно)))...Никто не знает про такой приём?
 

Гравицапа

elbirret elcno
r-tem
В той книжке не написано зачем это надо?
В каком контексте было это упомянуто-то?
romy4
Тогда уж лучше класс абстрактным сделать.
 

romy4

invoke [brain]
Гравицапа
смотря что r-tem"у нужно

r-tem
хе, так по твоей ссылке синглтон, а не вызов _чужого_ конструктора.
 
Сверху