Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что возвращает конструктор если объект не создан? Если объект не создался 
:(
    Опции темы
alexandra231525480
Дата 20.4.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 2.9.2006

Репутация: нет
Всего: нет



Конструктор класса (входной параметр имя файла) открывает файл, дескриптор которого присваивает private-переменной класса.  По ходу проверяет его валидность (!empty, наличие определенных строчек...). Что возвращает конструктор в случае не срабатывания какого-либо из проверочных условий?
PM MAIL   Вверх
GZep
Дата 20.4.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(alexandra231525480 @  20.4.2007,  12:01 Найти цитируемый пост)
Что возвращает конструктор

не совсем понял вопрос... конструктор - метод, вызываемый при создании экземпляра класса. Он обычно, вроде, null и возвращает...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
alexandra231525480
Дата 20.4.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 2.9.2006

Репутация: нет
Всего: нет



да, некорректно задан вопрос..  вобщем суть в том, что мне для срабатывания юнит-тестов нужно сделать так, чтобы объект не создавался. то есть при 
Код

$new_obj=new MyClass('file.xml');

в случае незачета условий в конструкторе (файла нет или он пустой..) переменной $new_obj присваивался не пустой объект, а какое-то значение (булевское или интегер - не важно.. ).  бо если я в конструкторе просто пишу
Код

...
if (some_false) { return 2; }
...

нью_обжекту все равно присваивается пустой объект класса МуКласс
PM MAIL   Вверх
Fally
Дата 23.4.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



а если добавить в класс метод, который будет проверять нормальный объект создан, или при его создании произошла ошибка (пустуют внутренние переменные объекта) и просто в if() вызывать этот метод.


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
Glip
Дата 24.4.2007, 00:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 7
Всего: 18



alexandra231525480,  исключение кидать не пробовали?
а по вопросу "что возвращает конструктор"
http://ru.php.net/manual/en/language.oop5.decon.php
Цитата

void __construct ( [mixed $args [, $...]] )

если мне не изменяет память void - ничего.
Цитата

Classes which have a constructor method call this method on each newly-created object, so it is suitable for any initialization that the object may need before it is used.

то есть new вернёт объект но при наличии конструктора он (конструктор) будет выполнен.

мне кажется Exception не самый плохой выход. ловите его в юнит тесте на здоровье.

Это сообщение отредактировал(а) Glip - 24.4.2007, 00:59


--------------------
user posted image
PM MAIL   Вверх
WolfON
Дата 24.4.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: 6
Всего: 8



Exception - самый лучший выход - ловите его не только в юнит-тесте, но и в готовом приложении
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.