![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Kotakota |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Привет.
Файл index.php
Файл TestClass.php
При передаче аргумента конструктору возникает следующая ошибка: Warning: Missing argument 1 for TestClass::__construct() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\TestClass.php on line 3 Notice: Undefined variable: myVariable in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\TestClass.php on line 4 Это сообщение отредактировал(а) Kotakota - 22.4.2011, 10:25 |
||||
|
|||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
public myVariable; может нужно $ поставить?
пишет же Undefined variable: myVariable т.е переменная не определена Это сообщение отредактировал(а) DenWPF - 22.4.2011, 10:18 |
|||
|
||||
нуп |
|
|||
![]() Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: нет Всего: 33 |
||||
|
||||
Kotakota |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Это опечатка.
Знак $ там был. Поправил. Ошибка актуальна! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
А больше опечаток нет? Откуда берется Controller, -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Kotakota |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Исправил. Больше опечаток нет. Заметил вот, что:
Все работает! И в чем была проблема? Версия PHP: 5.3 Это сообщение отредактировал(а) Kotakota - 22.4.2011, 10:35 |
||||
|
|||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
страно конечно, значит надо инициализировать поля.
|
|||
|
||||
Kotakota |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Это очень странно. Переменные в PHP не имеют типа. Какого типа значения, такого типа будет и переменная... |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
5.3 может так и есть.
|
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
PHP Version 5.3.3-1ubuntu9.3
Все в порядке
|
|||
|
||||
Kotakota |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Смысл следующий!
От класса TestClass куда передаются аргументы в конструктор наследуются другие классы. И вот когда вызывается наследуемый класс, то срабатывает конструктор (не понятно почему?) класса родителя. Естественно, что там $config будет пустая, так-как с index.php уже ничего не передается... Вот поэтому, когда я поставил __construct($myVariable=null) все сработало без ошибки. Непонятно почему вызывается конструктор родителя, при вызове класса наследника? Классы наследники вызываются у меня через Reflection. Это сообщение отредактировал(а) Kotakota - 22.4.2011, 11:50 |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
Конструктор переопределен? Если нет, то тогда вызывается родительский.
Добавлено через 29 секунд То что в первом топике никак не связано с наследованием. |
|||
|
||||
Kotakota |
|
||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Имеется такая структура: Файл index.php
Файл TestClass.php
Файл SomeClass.php
Файл ThreeClass.php
Когда вызывается метод someFunction() класса SomeClass, происходит вызов конструктора родительского класса TestClass. Так - как в момент вызова аргумент (myVariable) передающийся в конструктор класса TestClass, не определен, получаем ошибку: Warning: Missing argument 1 for TestClass::__construct() in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\TestClass.php on line 4 Notice: Undefined variable: myVariable in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\TestClass.php on line 5 Передается этот аргумент в конструктор класса TestClass, только один раз, при вызове index.php. Делаю дальше. В файл класса SomeClass дописываю свой конструктор, чтобы он не наследовался по умолчанию и не пытался передать аргумент (myVariable). Файл SomeClass.php
Получаем следующую ошибку: Fatal error: Call to a member function threesomeFunction() on a non-object in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\SomeClass.php on line 8 Помогите разобраться! ![]() Это сообщение отредактировал(а) Kotakota - 24.4.2011, 21:13 |
||||||||||||
|
|||||||||||||
Kotakota |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Вроде все правильно описал.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |