Пятничная загадка для PHPшников

В ЖЖ увидел прекрасное — загадку про ПХП.

Те, кто знает этот язык, скажите, почему этот код не выдаёт ошибок или предупреждений (все ошибки, конечно, включены):
<?php
http://bolknote.ru
?>
21 июня 2013 21:53

Lynn «Кофеман» (alexeyten.ya.ru)
21 июня 2013, 22:16

Это метка и комментарий

malinnikov (malinnikov.livejournal.com)
21 июня 2013, 22:20

Принимает за лейбл для goto и комментарий за ним?

Дмитрий (инкогнито)
21 июня 2013, 22:21

Потому что // и далее — это комментарии, а http:, да и любая другая конструкция, типа foobar: рассматривается интерпретатором как укороченный синтаксис операторов, типа for ...:

Вопрос теперь, почему не ругается на незнакомый оператор.

Дмитрий (инкогнито)
21 июня 2013, 22:23

Ага, вверху поправили уже. Goto, якорь им в жопу, в 2013-ом году–то.

Shurik (инкогнито)
21 июня 2013, 23:10

А на 5.2 не воркает :)

Евгений Степанищев (bolknote.ru)
22 июня 2013, 06:52, ответ предназначен Дмитрий

Ага, вверху поправили уже. Goto, якорь им в жопу, в 2013-ом году–то.
Что не так с goto в 2013-м году? Вы, надеюсь, помните, почему вообще не рекомендовали когда-то использовать goto? Или это абстрактная нелюбовь?

Евгений Степанищев (bolknote.ru)
22 июня 2013, 08:13, ответ предназначен Lynn «Кофеман» (alexeyten.ya.ru):

Первый же комментарий в точку :) Надеюсь, это было сделано без использования редактора с подсветкой? :)

Дмитрий (инкогнито)
23 июня 2013, 00:24, ответ предназначен Евгений Степанищев (bolknote.ru):

Я–то как раз помню. Плюс для меня лично он является абсолютно избыточной конструкцией, за последние лет десять программирования не было ни одного случая, когда я бы подумал “самое время написать маленький оператор безусловного перехода”, за исключением разработки на ассемблере.

Вы часто пользуетесь? Обрадовались добавлению в синтаксис? Раньше не хватало?

Евгений Степанищев (bolknote.ru)
23 июня 2013, 08:34, ответ предназначен Дмитрий

Вы часто пользуетесь? Обрадовались добавлению в синтаксис? Раньше не хватало?
Поскольку я частенько пользуюсь break, иногда чем-то вроде break 2, то меня раздражало, конечно, что стоит избавиться от внешнего цикла, как все break, где параметр больше единицы, нужно переделать.

В этом смысле goto лучше. Но использовать пока не доводилось.

Baka (инкогнито)
23 июня 2013, 16:23

В этом смысле goto лучше.
В этом смысле лучше была бы конструкция "break МЕТКА", которая в некоторых языках есть.
(Когда-нибудь и в РНР будет.)

Евгений Степанищев (bolknote.ru)
23 июня 2013, 21:05, ответ предназначен Baka

Чем же лучше, расскажите? Слово другое?

Дмитрий (инкогнито)
23 июня 2013, 22:49, ответ предназначен Евгений Степанищев (bolknote.ru):

Тем, видимо, что работать будет только в циклах.

Я сторонник теории, что язык программирование должен поощрять (и формировать) у разработчика ряд полезных привычек и определенный образ мышления. Появление goto в php, с учетом его входного порога и ментальной зрелости аудитории может повлечь удвоение средней величины спагеттисности кода. Добавлять вещи из соображений “а шоб було” мне кажется глупым, у PHP хватает пренатальных проблем, с которыми стоило бы разобраться в первую очередь.

Пока те примеры использования, которые предполагаются выглядели так: вот правильное решение на PHP, а тут оно чуть понятнее, потому что есть goto. Хотя изначальное решение ни в какие ворота не лезет. Также авторы любят ссылаться на FSM, в которых GOTO, хотя сомневаюсь, что хотя бы один из них хотя бы раз FSM использовал. А, еще смешные отсылки на ядро линукса, где много goto. В итоге имеем печальную картину: косметические улучшения изначально кривого кода, FSM и ядро линукса. FSM, ядро линукса и PHP.

Евгений Степанищев (bolknote.ru)
24 июня 2013, 06:18, ответ предназначен Дмитрий

Т.е. из циклов выходить по goto хорошо, а из других блоков — нет? Почему, позвольте поинтересоваться?

Дмитрий (инкогнито)
24 июня 2013, 12:10, ответ предназначен Евгений Степанищев (bolknote.ru):

Я не говорил, что это хорошо, я предположил, что автор это имел в виду. Опять же лучше ≠ хорошо. Иметь сифилис лучше чем спид, как–то так.

Lynn «Кофеман» (alexeyten.ya.ru)
24 июня 2013, 12:43, ответ предназначен Евгений Степанищев (bolknote.ru):

Нет. В JS такая же ситуация.
Я когда-то разбирался, почему в HTML срабатывает такой код

и с тех пор помню про метки.

Евгений Степанищев (bolknote.ru)
24 июня 2013, 14:51, ответ предназначен Lynn «Кофеман» (alexeyten.ya.ru):

Вы мне глаза открыли сейчас, кстати! Я-то думал, что браузеры его специально обрабатывают, потому что есть криворукие программисты!

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)