Инструкции goto, require, require_once, include, include_once
Инструкция goto используется для перехода в другую часть программы. Место, куда необходимо перейти указывается с помощью метки, за которой ставится двоеточие, после оператора goto указывается желаемая метка для перехода. Его синтаксис выглядит следующим образом:
1 2 3 |
goto метка; ...... метка: |
Рассмотрим пример организации цикла при помощи двух операторов goto:
1 2 3 4 5 6 7 |
$a=0; begin: $a++; echo "$a"; if ($a >= 10) goto finish; goto begin; finish: |
Доходя до инструкции goto begin, интерпретатор перемещается к метке begin,таким образом достигая зацикливания программы. Для выхода из программы используется условие, при срабатывании которого выполняется инструкция goto finish, которая сообщает о необходимости перейти к метке finish.
Оператор goto имеет свои ограничения. Целевая метка должна находиться в том же файле и в том же контексте, вы не можете переходить за границы функции или метода, а так же не можете перейти внутрь одной из них. Также нельзя перейти внутрь любого цикла или оператора switch. Но его можно использовать для выхода из этих конструкций (из циклов и оператора switch).
Инструкции require и include
Обе инструкции позволяют включать файлы в сценарий PHP. Таким образом удобно разбивать текст программы на несколько частей. Их синтаксис таков:
1 2 3 |
require имя_файла; include имя_файла; |
При запуске программы интерпретатор заменит инструкцию на содержимое подключаемого файла. Это бывает удобно для подключения частей шаблона или объемных функций.
Данные инструкции практически идентичны, но существуют между ними и некоторые различия. Файлы, подключенные через require подключает файлы на начале этапа выполнения, а include во время интерпретации. И если include подключает не существующий файл, и условие не выполнилось, то файл не будет подключен, но работа программы продолжиться. Ошибка в require остановит выполнение программы, показав ошибку.
Инструкции require_once и include_once
Инструкции require_once и include_once работают точно так же, как require и include. Однако перед включением файла интерпретатор проверяет, включался ли уже этот файл или нет. Если файл был подключен ранее, то он не будет подключен повторно. Операторы имеют следующий формат:
1 2 |
require_once имя файла; include_once имя файла; |
Применять операторы require_once и include_once удобно при разработке больших проектов, так как в одном из файлов включаемый файл, возможно, уже был подключен.