PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 8
Jo Отправлено: 01 Июля, 2011 - 10:11:02 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
Ch_chov пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP //SCRIPT B
  2.  
  3. C(); //потом идут другие команды, которые больше выполнять не нужно, если вызвалась функция С. Поэтому необходимо прервать исполнение В.
  4.  
  5. if (условие)
  6.   return; // Выход из файла
  7.  
  8. function C () { return;}
  9.  
  10. ?>

Если return вызывается из глобальной области видимости (не из функции), то текущий скрипт будет остановлен. Возможно даже, передать с помощью return какое то значение в родительский скрипт.
http://php.net/manual/ru/function.return.php



Все это понятно. Вопрос-то в том, можно ли передать в родительский скрипт не "какое-то значение", а команду на исполнение - в моем случае - return.
Jo Отправлено: 01 Июля, 2011 - 02:05:09 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
Stierus пишет:
обработка ошибок в нормальных системах осуществляется с помощью try ... catch (throw new exception), почитайте, думаю, вам подойдет.


вот-вот... сразу видно профи... Улыбка а как вычислил обработку ошибок!

просто система не очень "нормальная" - кроится из лоскутов. поэтому решение с goto было бы оч даже ничего...


ЗЫ навязчиво приходит в голову что-то вроде - чтобы вбросить в скрипт return из функции...
Бред, конечно... но вдруг что-то такое решалось кем-то?.. Ну вдруг...
Jo Отправлено: 30 Июня, 2011 - 22:32:36 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
OrmaJever пишет:
Извините не дочитал первый пост.
Ну тогда в самом конце файла B пишем

а в функции


будет работать только в php 5.3


Дельно. Хоть и некрасиво. Если не будет других предложений....
Хотя, не пойдет. У хостера 5.2.12
Jo Отправлено: 30 Июня, 2011 - 22:20:34 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
OrmaJever пишет:


Читать первый пост, почему не подходит.
(Добавление)
Slavenin пишет:
приходит в голову два варианта, первый, почему бы не сделать if на тот код который не должен выполняться, второй это http://forum.php.su/topic.php?fo...1&topic=2022 , который строго НЕ РЕКОМЕНДУЕТСЯ ПРИМЕНЯТЬ!


Имплементируется (внедряется) готовый скрипт. Слишком много IF пришлось бы встраивать. Есть способ проще - просто вставить return после каждого вызова С - да и то стараюсь избежать...
Второй способ ща почитаю, но предисловие уже пугает... Улыбка

...

Ба-ха.... jump и goto! Аж фортран вспомнил! :-D
В принципе, нечего их пугаться. Это просто мове тон их в программировании использовать... Потому что новички практиковали безусловные переходы ИЗ, а самое главное, В тело цикла. Улыбка А потом поди расхлебай это...
Но это так, лирика.

Что по теме-то, дельное есть решение? (мне сдается, что это в принципе невозможно)
Jo Отправлено: 30 Июня, 2011 - 20:49:12 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <?php //SCRIPT A
  4.  
  5. include ("scriptB.php");
  6.  
  7. ?>
  8.  




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php //SCRIPT B
  3.  
  4. C(); //потом идут другие команды, которые больше выполнять не нужно, если вызвалась функция С. Поэтому необходимо прервать исполнение В.
  5.  
  6. function C () { return; //это прерывает лишь функцию С.}
  7.  
  8. ?>
  9.  
  10.  

(Добавление)
короче, из С нужно остановить В.
все.
Jo Отправлено: 30 Июня, 2011 - 20:40:49 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
но он останавливает только функцию С.
Jo Отправлено: 30 Июня, 2011 - 20:37:20 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
именно там
Jo Отправлено: 30 Июня, 2011 - 20:33:53 • Тема: Остановить скрипт из функции. • Форум: Если скрипт не работает

Ответов: 17
Просмотров: 7714
Hi all

Если кто сталкивался, подскажите решение, пожалуйста.

Структура такова:

Скрипт А --> include скрипт B --> function C


Нужно остановить скрипт B из функции C.
Было б идеально, если как-то можно из функции C передать "на исполнение" команду return в скрипт B.

return из В срабатывает. А из функции С (ЕСТЕСТВЕННО) срабатывает только для функции С.

Можно, конечно, после каждого вызова функции С прописать return, но их там много получается... Не хотелось бы.


PS exit() и die() не подходят, так как убивают и родительский скрипт A тоже.



Всем спасибо.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB