Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Типизация в РНР (строгая)

15
27 ноября 2007 года
shaelf
2.7K / / 04.05.2005
Наткнулся на это вот. В РНР (пекл) сделали возможность строгой типизации. Если кому интересно, то смотрите, читайте...
http://blog.agoraproduction.com/index.php?/archives/56-PHPs-Strong-typing-SPL_Types-and-a-bit-of-ranting-about-winter...html
12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Ну эту типизацию в ... пень. "Я сказал люминий, значит люминий" (с) :D
353
28 ноября 2007 года
Nixus
840 / / 04.01.2007
Никогда не понимал строгой типизации в интерпретируемых языках. А тут, так вообще убожество какое-то.
15
28 ноября 2007 года
shaelf
2.7K / / 04.05.2005
Динамическая типизация никуда не делась))) Просто это дополнение для тех, кому нужна (пусть и не постоянно) строгая типизация. Скажем, если скрипт большой, и тебе нужно в одной переменной постоянно держать int, то этот вариант довольно неплох, чтобы не думать "а что тут сейчас". Я например в РНР что можно постоянно привожу к чему-то на уровне параметров.
 
Код:
function foo(array $list){}

Это позволяет мне минимум не заморачиваться на проверках внутри функции. Поэтому я считаю, что введение этого облегчит многим жизнь (не на уровне программы типа Hello world ессно).
239
28 ноября 2007 года
Dolonet
1.7K / / 20.05.2000
Честно говоря, как человек, начинавший с Вижуал бейсика, Си и ассемблеров, я сторонник явных объявлений переменных и строгой типизации. Это избавляет от многих гемморов. Для опытного программиста строгая типизация не должна быть ограничением, т.к. необходимость типизировать нестрого возникает при построении неявных алгоритмов.

Когда начинается подсчёт каких-то бухгалтерских радостей, начинается полный джаз, если, например, пользоваться флоатами. Это как пример.
353
28 ноября 2007 года
Nixus
840 / / 04.01.2007
Про обявление переменных я не говорил. Я говорю только о типизации и только в интерпретируемых языках.
Это насколько нужно быть не в себе, чтобы допустить в переменной венегрет? Если тебе нужно держать в перемнной int, вот и держи int. Или что-то мешает?
Все языки без типизации обладают автоматическим преобразованием типов.
239
28 ноября 2007 года
Dolonet
1.7K / / 20.05.2000
Так практически во всех популярных интерпретируемых скриптовых языках нет строгой типизации по умолчанию. PHP, Perl, Python тот же
353
28 ноября 2007 года
Nixus
840 / / 04.01.2007
Так зачем ее прикручивать - вот что непонятно. Да еще такими методами, повышающими расход памяти.
7.9K
28 ноября 2007 года
vasa_c
191 / / 05.04.2007
Вещь это несомненно полезная, особенно с учетом того, что никому не навязывается. Хотя бы потому что значительно повышает самодокументирование кода.
Так же, как и интерфейсы и абстрактные классы. Чисто технически они не нужны, но совершенно не лишни.
Однако, всё-таки есть гораздо более интересные вещи, которые можно было бы реализовать вместо этого — пространства имен, элементы функционального программирования и т.п.
276
28 ноября 2007 года
Rebbit
1.1K / / 01.08.2005
Лично я пока не вижу для себя зачем мне такое на РНР надо, но почемуто ето нововведение меня радует. Не мешает - уже хорошо. Чем больше возможностей тем лутше.
А пока мне абсолютно достаточно контроля на уровне параметров.
12
28 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Nixus
Так зачем ее прикручивать - вот что непонятно. Да еще такими методами, повышающими расход памяти.


Имхо, автор модуля просто привык к строгой типизации и просто не может и не хочет писать по другому. Вот и создал себе костыль.

"Программист привыкший писать на С и в С++ пишет на С". (с)

15
29 ноября 2007 года
shaelf
2.7K / / 04.05.2005
2vasa_c Пространства имён уже внедрили как и другие вкусные вещи. Всё это счастье придёт к нам с выходом 5.3 (сейчас уже доступна бетка, с которой можно поиграться. У меня она стояла с недельку и всё хорошо было. Снёс только потому, что к ней тогда не было xdebug). Настоятельно рекомендую с ней ознакомиться.
>>Да еще такими методами, повышающими расход памяти.
Иногда читаемость и "безопастность" кода значительно дороже памяти.
312
24 декабря 2007 года
dead_star
392 / / 26.11.2006
Цитата: shaelf
Динамическая типизация никуда не делась))) Просто это дополнение для тех, кому нужна (пусть и не постоянно) строгая типизация. Скажем, если скрипт большой, и тебе нужно в одной переменной постоянно держать int, то этот вариант довольно неплох, чтобы не думать "а что тут сейчас". Я например в РНР что можно постоянно привожу к чему-то на уровне параметров.
 
Код:
function foo(array $list){}



возник вопрос
на сколько я понял исходя из и из

Цитата:
PHP 5 introduces Type Hinting. Functions are now able to force parameters to be objects (by specifying the name of the class in the function prototype) or arrays (since PHP 5.1).


в качестве параметров можно использоват только object или array
а что на счет string или int?
их использовать нельзя?

15
24 декабря 2007 года
shaelf
2.7K / / 04.05.2005
Это немного не то. А вообще, при объявлении параметров да, можно только object (или какой-то определённый класс) и array
8
25 декабря 2007 года
mfender
3.5K / / 15.06.2005
Баловство всё это. В то время, когда наши космические корабли... эээээ.... ребята phpgroup старательно избавлялись от типизации и занимались приемственностью содержимого, находятся таки доброжеатели, намеревающиеся всё испортить! :D
15
25 декабря 2007 года
shaelf
2.7K / / 04.05.2005
Тогда вот это тебе наверное лучше вооще не смотреть))). Вообще, я считаю, что это здорово (про типизацию), а то, что она выборочная (иметь возможность строгой типизации), то это вдвойне прикольно. Это избавляет нас от лишних проверок или приведений к типу (типа в функции для интов делать $id = (int) $id).
312
25 декабря 2007 года
dead_star
392 / / 26.11.2006
Цитата: shaelf
Тогда вот это тебе наверное лучше вооще не смотреть)))


уже жалею что посмотрел

8
25 декабря 2007 года
mfender
3.5K / / 15.06.2005
Цитата: shaelf
Тогда вот это тебе наверное лучше вооще не смотреть))).


да всё ничтяк. я не против.
я вообще считаю, что типизация существует лишь для того, чтобы IDE понимал, что подсказывать программеру. Я-то сам всегда (как это ни странно) знаю, чем я и где оперирую. У меня есть программулина, в которой каждая ветвь TTreeView - довольно богатый класс-наследыш от TTreeNode, но абстрагированный интерфейсами от одного моего класса. И там, в процессе разработки, действительно нужно было думать о типах и их приведении. Потому что IDE ругается. Но в PHP всё немного проще...

15
25 декабря 2007 года
shaelf
2.7K / / 04.05.2005
Вообще типизация (строгая) полезна ещё для того, чтобы давать компилятору представление об том, сколько памяти отводить под переменую (пыху это не грозит) :))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог