Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

goto php

goto php

Всем привет! Сегодня мы с вами познакомимся с метками в php c помощью которых мы можем перемещаться в заданную часть программы. Поехали!

Для того чтобы создать метку нам достаточно указать ее название и поставить двоеточие.

Пример:

echo "Привет мир";

echo "<br/>";

flag:

echo "hello world";

Нам выведется две строчки "Привет мир" и "hello world". Здесь мы создали метку с названием flag. И теперь чтобы ей воспользоваться нам достаточно указать оператор goto и название метки.

goto flag;

echo "Привет мир";

echo "<br/>";

flag:

echo "hello world";

В результате нам выведется только одна строчка "hello world". Потому что как только мы доходим до оператора goto мы автоматически перемещаемся в указанную метку. То есть в нашем случае это flag.

Заметьте что я вызвал метку до ее инициализации, это тоже очень важный нюанс. Если мы попробуем сначала создать метку, а потом ее вызвать у нас произойдет зацикливание.

flag:

echo "hello world";

goto flag;

Так как мы снова и снова будем возвращаться в заданную часть программы где эта метка будет вызываться каждый раз.

Конечно мы можем на вызов метки навесить условие.

$i = 1;

flag:

echo $i." ";

$i++;

if($i <= 10)  goto flag;

Здесь у нас получилось подобие цикла который выводит числа от одного до десяти. Но так делать не рекомендуется, потому что не во всех ситуациях это отрабатывает корректно.

Еще нельзя вызывать меток которых не указано:

goto flag;

echo "Привет мир";

Здесь мы совершаем переход к метке flag. Однако в нашей программе она не указана, в результате чего произойдет ошибка.

C помощью меток мы можем выходить из циклов. Причем в заданную часть программы.

$n = 0;

for($i=-10;$i <= 10; $i++){
    if($i == 0){
        goto end;
    }
    $n++;
}

end:
echo $n;

Когда у нас значение переменной $i в цикле стало равняться нулю, мы из него вышли и вывели количество отработанных итераций.

Еще вы должны понимать что мы не можем вызывать метку которая находится в функции за ее пределами.

goto start;
echo 'текст';

function hello(){
    start:
    echo 'Привет';
}

hello();

Результатом у нас будет ошибка.

function hello(){
    goto start;
    	echo 'текст';
    start:
    	echo 'Привет';
}

hello();

Это правильный вариант.

На этом дорогие друзья данная статья подошла к концу. Если что то было непонятно оставляйте свои вопросы в комментариях или группе

вк

Ну а я с вами прощаюсь. Желаю успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm