Как программировать без GoTo

Я знаю, что операторы goto - это плохо, но я считаю, что их трудно не использовать при программировании. Я новый программист и знаю, что это плохая практика, но как можно их использовать? Я знаю об операторах IF ELSE, но какие еще инструменты помогут мне избежать использования GoTo?


person blazerunner44    schedule 18.07.2014    source источник
comment
Вы действительно, действительно, действительно, reeeeeallly уверены, что хотите использовать goto? Это скользкая дорожка, мой друг.   -  person    schedule 18.07.2014
comment
Pleeeeeeeease не используйте goto. Подумайте о детях   -  person Darren    schedule 18.07.2014
comment
Как мне перейти к другому разделу моего файла, используя что-то другое, кроме goto?   -  person blazerunner44    schedule 18.07.2014
comment
Если вы правильно спроектируете свой код, вам не придется.   -  person    schedule 18.07.2014
comment
Что именно вам нужно сделать, когда вы доберетесь до a ..?   -  person Darren    schedule 18.07.2014
comment
@Darren После примера, который я вам дал, нужно выполнить еще один PHP-код. Я хотел бы отказаться от выполнения остальной части кода и перейти прямо к содержимому HTML, которое находится еще ниже.   -  person blazerunner44    schedule 18.07.2014


Ответы (1)


Goto - это новая функция, начиная с PHP 5.3. Есть несколько очень, очень конкретных причин для их использования. Вы найдете некоторые Goto в драйверах или кодах ядра, но я действительно не вижу смысла использовать его в обычных CMS, блогах, социальных сетях, интернет-магазине и так далее ...

Если вы вернете 404, вы можете, например, использовать «header ('errorpage.php')». Вы можете установить флаг.

} elseif ($event['response']->getStatusCode() == 404) {
  $errorno = '404';
  //goto a;
  $thingsGoingWrong = true;
}         

. .

<?php if ($thingsGoingWrong) { doBazinga(); } ?>

Учитывая, что вы не используете предыдущую версию PHP, есть некоторые правила для Goto, например, вы не можете войти в цикл или оператор switch.

person Gurgel    schedule 18.07.2014
comment
Смотрите мою правку к сообщению - person blazerunner44; 18.07.2014