#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 и все.
Комментариев нет:
Отправить комментарий