Реклама на сайте Advertise with us

Завершить работу функции и перезапустить ее (php)

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 30.06.03
Сообщения: 794
Рейтинг: 202

Ссылка на сообщениеДобавлено: 03/02/05 в 17:10       Ответить с цитатойцитата 

Есть функция

--------------------------
function A($arg_1,$arg_n){

Тут какие то вычисленияicon_smile.gif

В процессе вычислений получаем сбой, например $b='error';

}
--------------------------

Нужно чтобы в случае $b='error' функция завершила рабту и перезапустила себя с теми же $arg_1,$arg_n. Как это сделать? Надеюсь понятно написал=))

0
 



С нами с 07.06.00
Сообщения: 3516
Рейтинг: 1802

Ссылка на сообщениеДобавлено: 03/02/05 в 17:22       Ответить с цитатойцитата 

Если функци завершила работу, она уже ничего не может запустить (по определению... отдыхает уже функция)
Можно попробовать так:

Код:
function A($arg_1,$arg_n, $count=1){
GLOBAL $max_count; // защита от зацикливания

Тут какие то вычисленияicon_smile.gif
В процессе вычислений получаем сбой, например $b='error';
  if ($b=='error') {
     $count++;
     if ($count < $max_count){
         A($arg_1,$arg_n,$count);
     }else{
         return 'Count overlimit';
     }
  }else{
      return 'OK' ;
  }

}


ЗЫ: Может можно и проще, но это первое, что на ум пришло. Должно вроде работать.

Elitist Club и Adult Yellow Pages

1
 



С нами с 30.06.03
Сообщения: 794
Рейтинг: 202

Ссылка на сообщениеДобавлено: 03/02/05 в 17:25       Ответить с цитатойцитата 

В голову приходит только

function A($arg_1,$arg_n){

Тут какие то вычисленияicon_smile.gif

В процессе вычислений получаем сбой, например $b='error';

if($b='error') return $b;

}


while(A($arg_1,$arg_n)='error'){
A($arg_1,$arg_n);
}

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 03/02/05 в 17:46       Ответить с цитатойцитата 

Alpha_Juno писал:
В голову приходит только
function A($arg_1,$arg_n){
Тут какие то вычисленияicon_smile.gif
В процессе вычислений получаем сбой, например $b='error';
if($b='error') return $b;
}

while(A($arg_1,$arg_n)='error'){
A($arg_1,$arg_n);
}


А можно еще немного проще icon_smile.gif :
Код:

while($a){

   $a = function A(blaj blaj);

}

function A (blaj blaj){

if (error)
return FALSE;
else
return TRUE;

}

1
 



С нами с 07.06.00
Сообщения: 3516
Рейтинг: 1802

Ссылка на сообщениеДобавлено: 03/02/05 в 18:47       Ответить с цитатойцитата 

Угу. Если это возможно, то рекурсии лучше избежать.
Но изначально вопрос ставился : "Нужно чтобы... функция завершила рабту и перезапустила себя ".

Elitist Club и Adult Yellow Pages

1
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 03/02/05 в 20:42       Ответить с цитатойцитата 

sAx писал:
Угу. Если это возможно, то рекурсии лучше избежать.
Но изначально вопрос ставился : "Нужно чтобы... функция завершила рабту и перезапустила себя ".


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

1
 



С нами с 30.06.03
Сообщения: 794
Рейтинг: 202

Ссылка на сообщениеДобавлено: 04/02/05 в 04:44       Ответить с цитатойцитата 

Всем спасибоicon_smile.gif
Сделал свой вариант, и что самое интересное, работает как надо=)))

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »