![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: нет Всего: 0 |
Есть такое код:
Здесь создан класс А и его наследник класс B, в классе А объявлен метод с названием example и в классе B такой же метод объявлен. Когда я написал так: A::example(); Я просто через глобальную область видимости к классу вызывал ег о метод, это вроде понятно,но после вот этого: $b->example(); Вызывался метод из класса-потомка, а потом вызвался метод класса родителя после него, почему это так? Почему после этого $b->example();выводится 2 раза, а не один класса-потомка? |
|||
|
||||
| SickFxck |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
||||
|
||||
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: нет Всего: 0 |
Вы не поняли $b->example(), один раз написал ,а вывелось и родителя и потомка,почему?
Это сообщение отредактировал(а) Golovastik - 23.11.2010, 02:49 |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 13 Всего: 78 |
Потому что у Вас в методе потомка есть надпись A::example(); Если ее убрать, то выведется только метод потомка ;) -------------------- Ll 2 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
у тебя страшныйнекорректный код, я удивляюсь, как оно вообще работает разработчики РНР вообще не прикрыли лавочку со статическим вызовом нестатических методов.
тут должно быть :
работает только потому, что в A::example() нет обращения к $this. впрочем, РНР должен все равно ругаться, видимо, у тебя отключен вывод ошибок на экран - потому ругань остается только в логах Это сообщение отредактировал(а) skyboy - 23.11.2010, 18:01 |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
skyboy, с чего ему ругаться? =) в коде все честно
|
|||
|
||||
| skyboy |
|
||||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
статический вызов нестатического метода.
приводит к
потому что вместо "A::example()" должно быть "parent::example()" Добавлено через 3 минуты и 32 секунды
это к слову про логи и "невыведенные на экран сообщения" |
||||||
|
|||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |