Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
php 4. Господа, не знаю правильно или нет, но при создании объекта я проверяю входные данные и если они не корректны, собсна хочу вместо объекта возвратить NULL, а возвращается вовсе не NULL, а объект. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2007, 02:41 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
код в студию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 19:10 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. т.е. получается так: Код: plaintext 1. 2. 3. Переменные Вован и Стасон имеют тип object, но из примера видна, что для Стасона вызывается конструктор с невалидными параметрами. Хотелось бы чтобы конструктор в таком случае, вместо объекта возвратил бы NULL. Поясните, может не в ту степь думаю? Конечно, можно проверку данных вынести из класса, но почему бы классу самому не проверять свои данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 20:06 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
- переходите на PHP 5 и используйте Exception ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 20:16 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
По сути вы хотите в процессе создания объекта прервать это создание, без прерывания программы, это слишком экзотично, даже сложно предположить как это можно было бы запрограммировать внутри PHP. Чесно говоря даже сложно понять, как у вас реализован механизм проверки на правильность далее в программе, которая использует объект user, вы просто проверяете, например, $vovan на предмет объекта или как? Я так понял, вы хотите экономить память, не занимать объектами/ресурсами, которые заведомо не будут использоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 23:21 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
sxqЯ так понял, вы хотите экономить память, не занимать объектами/ресурсами, которые заведомо не будут использоваться? Правильно поняли. Видите ли, у меня хромает ООП, а отсюда очень часто возникают дилемы при проектировании классов! В данном примере я демонстрирую класс user. С одной стороны, объект сам должен отвечать за корректность/целостность своих данных. Но из данного примера я понял, что те значения, которые передаются в конструктор должны быть проверенными извне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2007, 18:38 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
С точки зрения ООП иннициализировать объект и получать вместо него NULL - по меншей мере глупо. Исключение выбрасывать - идеальный вариант, но как тут уже подметили это только в 5-й версии. А валидность данных объекта это свойство объекта, собственно его и надо проверять т.е. добавить метод isValid() Код: plaintext 1. 2. 3. 4. 5. 6. Конструктор пускай занимается только установкой данных. После иннициализации объекта, проверяем его валидность, если false уничтожаем .. Использование метода валидации [isValid()] улучшит читаемость кода, и избавить от необходимости разбираться в исходнике класса user. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2007, 02:55 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
mrJust, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. тут некоторые советовали тебе исключения. ну с точки зрения атомарной, что прийдёться вызов инстанса оборачивать в блок трай-кетч, что после вызова сделать проверку а не вернулся ли нулл - вообщемто паралельно. но это имено с атомарной точки зрения - глобально, исключения удобней будут. кстате, в хпх не уверен, но в других языках если в конструкторе выскакивает исключение, это равноцено созданию "мертвого" обьекта - как будто никто его и не создавал. тоесть физически после возникновения исключения не обработаного в конструкторе, мы из него(конструктора) вылетаем, где бы мы исключение не обработали, обьекта не будет ,и памяти для него выделеной не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2013, 15:03 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
авторну с точки зрения атомарной, что прийдёться вызов инстанса оборачивать в блок трай-кетч жжошь. расскажи как на php можно НЕАТОМАРНО создать объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2013, 15:11 |
|
||
|
(PHP) Отмена создания объекта
|
|||
|---|---|---|---|
|
#18+
alex564657498765453 , ScareCrow , Может быть уже пора прояснить понятие "атомарности" в контексте создаваемого объекта? Или тему прошлого десятилетия можно смело закрыть, дабы не плодить очередных обсуждений ентой самой атомарности в вакууме? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2013, 22:55 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=34503289&tid=1463669]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 392ms |

| 0 / 0 |
