powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вызов конструктора "пра" родителя
12 сообщений из 12, страница 1 из 1
вызов конструктора "пра" родителя
    #38297695
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Есть следующий код:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class A {
	public $test;
	public function __construct() {
		$this->test = 777;
	}
}

class B {
	public function __construct() {
		parent::construct();
	}
}


Я хочу в классе C вызвать конструктор класса A, но ни так:
Код: php
1.
2.
3.
4.
5.
class C {
	public function __construct() {
		parent::construct();
	}
}



ни так:

class C extends B {
public function __construct() {
A::construct();
}
}

не получается - свал. Есть способ сделать то, что я хочу?
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38297697
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл extends... исправленный код:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
class A {
	public $test;
	public function __construct() {
		$this->test = 777;
	}
}

class B extends A {
	public function __construct() {
		parent::construct();
	}
}

class C extends B {
	public function __construct() {
		A::construct();
	}
}
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38297708
mhx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mhx
Гость
Вызываете несуществующий метод construct() вместо __construct()
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38297731
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mhx,
спасибо, провтык. Вопрос все равно остался, если вызываю parent конструктор в классе C, вызывается конструктор класса B, и только потом класса A. То есть единственный вариант вызывать конструктор класса A напрямую?
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38297809
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximuS_G,

унаследовать от класса а
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38297928
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, спс. Но что если класс B содержит функциональность, которая нужна в классе C?
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38298060
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximuS_G,

значит неправильно классы раскидали. То что нужно в классе А выноситсья в отдельный метод, и вызываеться отдельно в конструкторе С.
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38298068
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторpublic function __construct() {
A::construct();
}
и что правда работает?
а конструктор ЧЕГО оно вызывает?
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38298093
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат, я понял. Спасибо большое! Я использую фреймворк kohana, подстраиваюсь уже под что есть :).
ScareCrow, там опечатка :). Правильно "A::__construct".
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38298095
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что правда работает?
а конструктор ЧЕГО оно вызывает?
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38298147
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает, а почему ему не работать? Вызывает конструктор класса А. Вот более осмысленный пример:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
class A {
	public static $test;
	public function __construct() {
		self::$test = 777;
	}
}

class B extends A {
	public function __construct() {
		parent::__construct();
	}
}

class C extends B {
	public function __construct() {
		A::__construct();
	}
}

$c = new C();
echo A::$test; // 777
...
Рейтинг: 0 / 0
вызов конструктора "пра" родителя
    #38298149
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот если убрать класс B из цепочки наследования, то валиться - вызов не статического метода __construct
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вызов конструктора "пра" родителя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]