PHP 5.3.0 jumps to Basic

В PHP 5.3.0 ввели оператор «jump»: «Added „jump label“ operator (limited „goto“). (Dmitry, Sara)»

Полюбуйтесь:

$n = 1;

L1:
if ($n > 3) jump L2;
echo "$n: okn";
$n++;

jump L1;

L2:

Здравствуй, непонятный запутанный код! Ребят, сделайте «my» как в Perl, а? Куда ведь более полезный функционал.

Комментарии 25

playpausenstop.livejournal.com № 10
хех, давно так не смеялсо…

помню еще как на первом уроке по паскалю в 9м классе учитель информатики строго настрого запретил использовать goto:, а тут на тебе )))

мои поздравления )))
indeyets.livejournal.com № 12
этот «goto» по крайней мере избавлен самых опасных черт «настоящего goto»
возможен переход только вверх по стеку (т.е. нельзя прыгнуть в середину while/for)

практическую ценность представляет только для микро-оптимизаций алгоритмов

кстати, откуда ты взял этот пример? он не рабочий. Рабочий такой:

foreach(range(1,10) as $i) {
if ($i == 5)
goto LABEL;
}

echo «cycle finished\n»;

LABEL:
echo «goodbye, cruel world!\n»;
Евгений Степанищев (bolknote.ru) автор № 14
Да, я чисто умозрительно догадался, что внутрь цикла (чем и опасен goto) войти не получится.

Пример взял из тестов к какой-то сборке PHP.
Евгений Степанищев (bolknote.ru) автор № 15
Комментарий для coprophagous.ru:

С хостингом на «Питоне» трудновато.
jahson.livejournal.com № 17
Нда. Комментаторы жгут, только непонятно — от злобства, или недопонимания? Впрочем, удивляться нечему — слишком уж похапе-программистов много и слишком они уродливы. Хотя, также много и python-программистов того же уровня. Всё относительно, и огромное сообщество похапе-уродов воняет очень сильно, потому так и известно. Думаю, количество уродов в питоне ничуть не уступает похапешному, просто сообщество поменьше. При этом многие представители не-похапе сообществ похожи своим поведением на пидарасов, которые громким ором пропагандируют свои преимущества. Опять же, думаю аналогичное можно сказать о похапе-сообществе, но это свойственно ему в меньшей мере.

Хорошие *-программисты есть, но они как-то не лезут во всё это говномесиво — зачем?

А теперь то, что должно стоять в самом начале. Я тоже считаю, что введние goto не особо нужно, и, возможно, даже опасно. Но:
1. goto есть не только в php, поэтому его присутствие особо не удивит
2. break / continue — это тоже goto, только обрезанные, т.е. goto особ никуда и не уходило, просто его обрезали, дабы шаловливые ручки программистов не создавали себе проблем
3. для использования любого инструмента нужен навык
4. если человек думает жопой и оттуда же у него растут руки, то тут уже ничем не поможешь — код в любом случае будет получаться жопский, пиши он на php, или python

Пункты 3 и 4 превалируют. Особенно 4.
Евгений Степанищев (bolknote.ru) автор № 18
Для использования PHP тоже нужен навык. Навык использования его так, чтобы не было мучительно больно.

А goto — ещё одна штука, позволяющая неграмотным программистам писать такой код, что у меня глаза слезятся.
jahson.livejournal.com № 19
Комментарий для Евгения Степанищева:

Насчёт навыка — это точно. Но goto, а точнее его присутствие или отсутствие вряд ли сильно поменяют подход неграмотных программистов. Говорю же, «особенно 4».

У меня глаза уже не слезятся. Я просто говорю слово из трёх букв и сажусь разбираться.
Евгений Степанищев (bolknote.ru) автор № 20
Комментарий для jahson.livejournal.com:

Я тоже его говорю и тоже сажусь, куда деваться, но хотелось бы, чтобы всё обходилось без слова из трёх букв.
jahson.livejournal.com № 21
:)
Это решится лишь тогда, когда кроме всего прочего станут обучать программированию. Я вот студент со стажем, лень было учиться, поэтому много времени потерял, но зато сделал одно простое наблюдение (и я уверен, не только я это заметил) — среди, казалось бы, достаточно программистского направления прикладных математиков, нормальных программистов (которые программу могут более-менее написать) очень мало. А хороших — которые напишут, да так, что остальные поймут и проникнутся — так и вообще почти нет. Проблема тут не только в опыте и головах, но и в том, что как таковому, навыку программирования не обучают вообще.

Так и витает в воздухе идея подобного обучения. Только вот форма пока не ясна.
Евгений Степанищев (bolknote.ru) автор № 22
Комментарий для jahson.livejournal.com:

Будешь смеяться, но я закончил ВМК, прикладная математика :)
jahson.livejournal.com № 23
Комментарий для Евгения Степанищева:

Улыбнуся :) И как там было с программистами?
Евгений Степанищев (bolknote.ru) автор № 24
Комментарий для jahson.livejournal.com:

Херово. Очень херово. Из девушек почти никто не работает в IT, многие пошли в 1C.
jahson.livejournal.com № 25
О, 1С. У нас всё точно так же. Девушки-прикладные математики — это, конечно, почти миф :) На моей памяти сейчас только одна есть, но она отдельный случай — хороший математик.