Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Конструкция If else

#c_sharp #java #php #javascript #cpp


Доброго времени суток, Хешкодовчане!)
Все мы знакомы с такой языковой конструкцией, как if else. Вот у меня возник такой
вопрос. Возможно ли какими то способами так сказать "вломиться" не в свою часть данной
конструкции?
Вот приведу пример (php):
$var = true;

if($var === true)
{
   //Вот сюда мы попадаем по логике
}
else
{
   //А сюда реально попасть, не изменяя значение переменной $var ?
}

Данный вопрос меня заинтересовал сегодня за обедом :) Буду рад выслушать Ваши мнения!    


Ответы

Ответ 1



Наверняка эту задачу можно решить без таких костыльных способов. Метки - это плохой стиль. Без них можно обойтись в 99% случаев. Тем более, что подобные вломы в чужие секции могут привести к очень неприятным последствиям, вплоть до краха скрипта! Вы лучше расскажите поподробнее о своей задаче, мы поможем решить =)

Ответ 2



C, C++: goto setjmp, longjmp использование ассемблерных вставок с инструкциями перехода или колдовством над регистрами cs:ip :-) Другой способ - срыв стека и корректировка адресов :-) Или любой другой способ редактирования кода программы на ходу :-)

Ответ 3



А разве то что вы хотите, это не: $var = true; if($var === true) { foo(); } bar(); Т.е. просто удаляем else и все.

Комментариев нет:

Отправить комментарий