Автор Тема: Closure в php 5.3  (Прочетена 6433 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Stilgar

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 0
  • -Получени: 42
  • Публикации: 1406
    • The Sietch
Отг:Closure в php 5.3
« Отговор #15 -: 23 Ноември 2010, 17:49:06 »
xzsa не знаех, че така става в PHP. В Java става с break label; (което работи като goto само дето label седи на съвсем конкретно място в края на цикъл... или беше началото). В този случай имаме специализиран feature на езика да замести goto в конкретната (често срещана) ситуация. Могат да се измислят други ситуации с еквивалентен проблем, които не могат да се заобиколят с този конкретен feature. Разбира се и за тях може да се измисли специален feature, ама ако за всичко ще мислим features по-добре да си сложим goto в езика.

Ако приемем, че сме в език, които не разполага с feature за решаване на конкретния проблем може да направим метод който да опакова тея 2 цикъла и да излизаме с return. Само дето въпросът е наистина ли е по-лесно и се чете по-лесно и е по-удобно да скачаш с debugger-а между методите... ами ако бяха няколко променливи?

P.S. Java решението е много по-интелигентно от PHP решението защото подлежи на refactoring. Ако махнем едниният цикъл или добавим нов изведнъж променяме семантиката на кода без компилационна грешка. После като разправям, че PHP е скапан език вместо да питате защо елате да си прочетете този P.S.