Возврат из функции к основномоу скрипту.



  • Привет!

    По ходу действия основного скрипта, много раз вызывается одна и та же отдельная функция, в которой есть условия IF\ELSE.

    Подскажите пожалуйста, как можно сделать так, чтобы один из вариантов этой функции возвращал действие в ту точку, откуда она вызывалась ?

    Т.е. - скрипт доходит до этой функции, попадает в нее, что-то там происходит, после чего действие возвращается обратно и продолжается дальше по командам основного скрипта.

    Сложность, для меня, в том, что таких обращений к функции несколько.



  • @fox-mulder Самое простое метка, но не факт что самое хорошее... Установите ее там куда надо вернуться и поставьте условия. Только учтите что метки и функции могут привести к очень неожиданным результатам. Если вы ее ставите то нигде больше не ставьте новую с таким же названием.
    Текст ссылки



  • @fox-mulder said in Возврат из функции к основномоу скрипту.:

    Привет!

    По ходу действия основного скрипта, много раз вызывается одна и та же отдельная функция, в которой есть условия IF\ELSE.

    Подскажите пожалуйста, как можно сделать так, чтобы один из вариантов этой функции возвращал действие в ту точку, откуда она вызывалась ?

    Т.е. - скрипт доходит до этой функции, попадает в нее, что-то там происходит, после чего действие возвращается обратно и продолжается дальше по командам основного скрипта.

    Сложность, для меня, в том, что таких обращений к функции несколько.

    Оберните в функции все действия в один if и в случае его не выполнения функция будет завершена и вызов вернётся ровно в то место, где эта функция была вызвана.



  • @fox

    У меня постоянно получается так, что функция выполняется ( ну или не выполняется ), после чего действие просто останавливается, не возвращаясь обратно к тому месту, откуда она вызывалась.

    Пока я решил проблему тем, что создал пять одинаковых функций и использовал пять меток для выхода из них.
    ( Функция вызывается 5 раз по ходу действия основного скрипта )

    Но это колхоз, конечно (



  • @fox-mulder , дождитесь полного выхода из функции, для этого всего одну метку переместите в конец функции, далее перенесёт в место вызова функции... и можете эту функцию пускать по циклу вместо 5-ти меток ;)
    P.S. По поводу метки, переход к ней нужно осуществлять только внутри самой функции...



  • Сделай через функцию continue, чтобы закончить работу if и она тебя вернёт потом уже в main


Log in to reply
 

  • 4
  • 10
  • 3
  • 2
  • 3
  • 3
  • 10
  • 3