25.06.2009, 00:07 | #1 |
Мне повезёт!
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
|
Странное новшество в PHP 5.3
В него добавили... *барабанная дробь* - оператор GOTO!
А из других языков его наоборот вычищают и в любой книжке пишут что им лучше не пользоваться...
__________________
If it's not great, it's not the end. |
25.06.2009, 00:10 | #2 | |
Серьезный бизнес.
|
Цитата:
только на ASM |
|
25.06.2009, 00:16 | #3 | |
Эксперт
Регистрация: 09.05.2008
Адрес: ПГ
Сообщений: 1,704
Вес репутации: 0
|
Цитата:
Это дейкстра понтуется: "данная концепция противоречит структурному программированию", а на самом деле очень полезный оператор, иногда без него не обойтись. Главное с умом делать.
__________________
|
|
25.06.2009, 01:15 | #4 |
Добрый модератор
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1025
|
Ввели для выявления афропрограммистов
__________________
Правильный хостинг. В личке бесплатно не отвечаю обычно. |
25.06.2009, 09:34 | #6 |
Вредина
Регистрация: 03.07.2007
Адрес: д.Коноплянка
Сообщений: 3,535
Вес репутации: 432
|
Я знал что введут еще с августа прошлого года (тогда было заявлено что есть планы), все опупели от такого заявления. Сколько было споров даже представить сложно.
Al Pacino, обойтись без него можно ибо switch давно придуман, делай структуру да прыгай как вздумается. Именно так например и мотивировал Расмус Лердорф что goto ни когда не будет в PHP. Но раз планы появились, то и "никогда" превратилось в успешную реализацию. Был просто аргумент в пользу ввода, кстати такой аргумент многие в рамках сапы используют когда просят ту или иную муть. Тем кому он не нужен, не кто не заставляет юзать. А кому уж так хочется - нате. Я лично, раз он появился буду использовать весь арсенал операторов в том числе и goto, совершенно не стесняясь этого. К слову сказать, как сертифицированный разработчик Lotus Domino баз данных и LotusScript goto юзаю давно именно в этих средах, не смотря на то, что можно обойтись и без них если посидеть раза в 2-3 больше на кодом. Простой пример, когда Goto легко позволяет выйти из функции без критической ошибки, получить эту ошибку как описательно так и в кодовом значении. Sub Click(Source As Button) On Error Goto ErrHandle Dim s As New NotesSession Dim db As NotesDatabase Dim newdoc As NotesDocument Dim w As New NotesUIWorkSpace Dim item As NotesItem Dim rt As NotesRichTextItem Set w = New NotesUIWorkSpace Set uidoc = w.CurrentDocument Set doc = Uidoc.Document .... .... Exit Sub ErrHandle: Print {ActonSend-> Click: } & Error$(Err()) & { (} & Err() & {) in line: } & Erl() End Sub Таким образом где бы в коде не произошла ошибка, у меня не будет кривых "недопустимая операция", "переполнение буфера" и других модальных и не модальных херовин, у меня будет полный контроль над процессом без множественных проверок на каждом этапе вычисления. А функций в типовой лотусной приложухи мама не горюй и это только под толстого клиента, а если еще намутить под тонкого ... в общем проецируя на PHP уже отчетливо вижу как его использовать и как упростить себе жизнь.
__________________
|
25.06.2009, 11:18 | #8 |
Мне повезёт!
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
|
Приведите пример, пожалуйста...
__________________
If it's not great, it's not the end. |
25.06.2009, 11:36 | #9 |
Эксперт
|
Конкретный лень отрывать. Но думаю, что даже в сети их будет куча и на спец. форумах это сто раз уже обсуждалось. Но помню ещё в универе нам долбили, что всё таки goto может облегчить жизнь. Jooz, же привёл пример.
__________________
|
25.06.2009, 11:42 | #10 |
Мне повезёт!
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
|
То, что он привет, если переложить на c-like язык, то эт оскорей пример не GOTO, а
try { .... } catch (...) { .... } Т.к. у него используется именно в этом смысле. Я же прошу пример применения именно GOTO в его настоящем смысле. GOTO как правило используется для оптимизации производительности, т.к. компилятором транслируется в ультра-быструю инструкцию JMP. Однако, такого рода оптимизации требуются только при программировании на компилируемых языках и разве что при разработке систем реального времени или для мобильных устройств.
__________________
If it's not great, it's not the end. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странное наблюдение.. | opel | Курилка | 10 | 30.09.2008 18:00 |
Странное начисление....... | maxispeed | Ошибки при работе с системой | 11 | 10.05.2008 05:13 |
Странное отображение ссылки | Маленькая сосна | Вопросы от новичков | 0 | 28.01.2008 13:01 |
Что то странное | Setas | Вопросы от новичков | 2 | 25.01.2008 15:01 |
Что-то странное творится | 117195m | Вопросы по работе системы | 1 | 18.06.2007 23:06 |
Часовой пояс GMT +3, время: 09:50.