![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Leklerk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 31.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Можно ли указывать типы параметров функции при объявлении функции? Например,
|
|||
|
||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Кажется нет.
А зачем? |
|||
|
||||
| Telepyz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 9.7.2007 Репутация: нет Всего: 1 |
в PHP тип указывать не нужно, он сам определяет его.!!!!
--------------------
обновить драйвер |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
type hinting: можно указывать array (>= php 5.1) и название класса
|
|||
|
||||
| Leklerk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 31.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Чтобы нельзя было передавать данные не того типа. |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
А что будет, если передать не того? Fatal error?
Не лучше ли будет внутри функции проверить тип и тогда уже кидать исключение? |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
NLspieler, когда только кажется, лучше молчи.
В добавок type hinting позволеят проверять соответствие интерфейсу |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
Ипатьев, т.е. ты думаешь для type hinting нету применения? Я думаю, он имеет смысл для пользователей класса/функции, чтобы они не ошиблись в своих заблуждениях о типах параметров (с расчетом на то, что все сразу выяснится). А если много проверять в начале функции, то будет много букафф. Писать программу, которая рассчитывает на ошибки создателя не вижу смысла. Тестировать тогда уж надо. Потому что слишком много чего можно проверить. В принципе из этого "слишком много чего" можно выбрать распространенные ошибки, но мне ничего в голову не приходит
Это сообщение отредактировал(а) youri - 3.10.2009, 14:40 |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
я думаю, что это, во-первых, syntax sugar (можно блин при желании передавать массив, тип-переменная)
а во-вторых, сдается мне, что автор, если про него вспомнить, имеет в виду не это. |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
просто это какая-то нечеткая фраза syntax sugar... Имеешь в виду, что type hinting в общем-то не нужен? (кстати, такой fatal можно перехватить)
по поводу ТС. на его непосредственный вопрос ответили. После него должен был возникнуть очередной: а когда его использовать. Вот я и пытался свои мысли по этому поводу высказать. Пускай не type hinting, а непосредственная проверка в коде. Но когда она нужна? Вижу смысл оградить пользователя от вероятных ошибок (не от всех, а те, которые вероятны), например, передал массив, а нужен класс (коллекция или типа того). В расчете на то, что он их сразу заметит. Но он и без проверок их заметит скорее всего. В общем сомнительно, но придумал другую причину Это сообщение отредактировал(а) youri - 3.10.2009, 18:20 |
|||
|
||||
| nerezus |
|
||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Ответ: чтобы было удобно.
|
||||||||
|
|||||||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
а у тебя были случаи, когда type hinting не давал тебе совершить ошибку? При чем если бы ты не указал тип, то ошибка могла остаться незамеченной? |
|||
|
||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
youri,
|
||||
|
|||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
||||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Ипатьев, ну если тип указан - то мы сразу узнаем ошибку. Если не указан - то она может всплыть хрен знает где.
|
|||
|
||||
![]()
|
| Правила форума "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. |