Оператор "goto" происходит прямо из ASM или любого другого языка ассемблера.
Вот ссылка: http://be2.php.net/manual/en/control-structures.goto.php
Мне интересно: что это может сделать, чтобы мой код был лучше организован? Как я могу реализовать это в более крупных проектах, не облажаясь.
Так как goto позволит вам прыгать вперед и назад, случайные назначения и бесконечные циклы ожидают выполнения, если вы используете это неправильно.
Может ли кто-нибудь дать мне пример хорошего использования этого?
РЕДАКТИРОВАТЬ: хорошо, я видел некоторые ответы, и, видимо, существует широкий консенсус по поводу использования выражения "goto", и оно является плохим.
Так что я все еще задаюсь вопросом: с какой стати PHP потрудился бы добавить его в язык. Если бы они не увидели что-то в этом, они не сделали бы это ... так почему?
Также: Обсуждение здесь на StackOverflow о "goto" в целом
РЕДАКТИРОВАТЬ 2: Видя, как этот вопрос вызвал много плохих вещей, чтобы быть грустным по поводу заявления goto, я пошел и спросил моего отца. Ему 52 года и он инженер-технолог.
Он пару раз говорил мне, что в свое время занимался программированием, в основном на фортране и коболе. В настоящее время он занимается ИТ-сервисами, управлением серверами и сетью и т. Д.
В любом случае, он сказал кое-что о "назад в мои дни ..."
Немного поговорив об этом, он вернулся к заявлению goto, сказав, что даже в студенческие годы они уже знали, что использовать его не было разумной идеей, но тогда у них не было намного лучше. До try / catch было еще много лет, а обработка ошибок практически не возникала.
Итак, что вы сделали, чтобы проверить свою программу? Добавьте в конце несколько строк, которые позволят вам напечатать вывод и все, что вам нужно, чтобы проверить свой код, а затем поместите строку: «перейти к печати;» или что-то в этом роде, чтобы начать печать ваших данных.
И таким образом вы постепенно отлаживаете свой код.
Он согласен с тем, что использование goto в современном мире программирования довольно бесполезно. Единственное использование, которое он считает оправданным, - это «аварийный перерыв», предназначенный для экстремальной отладки и неожиданных ситуаций. Вроде как goto fatal_error;
, и часть вашего кода "fatal_error" делает некоторые вещи, чтобы показать вам подробные результаты.
Но только во время создания чего-либо. Готовый продукт не должен иметь goto-операторов.
LATE EDIT: Еще одно обсуждение "goto" в PHP5.3 / PHP6