С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 03/02/05 в 17:10 |
Есть функция
--------------------------
function A($arg_1,$arg_n){
Тут какие то вычисления
В процессе вычислений получаем сбой, например $b='error';
}
--------------------------
Нужно чтобы в случае $b='error' функция завершила рабту и перезапустила себя с теми же $arg_1,$arg_n. Как это сделать? Надеюсь понятно написал=))
|
|
|
|
С нами с 07.06.00
Сообщения: 3516
Рейтинг: 1802
|
Добавлено: 03/02/05 в 17:22 |
Если функци завершила работу, она уже ничего не может запустить (по определению... отдыхает уже функция)
Можно попробовать так:
Код: | function A($arg_1,$arg_n, $count=1){
GLOBAL $max_count; // защита от зацикливания
Тут какие то вычисления
В процессе вычислений получаем сбой, например $b='error';
if ($b=='error') {
$count++;
if ($count < $max_count){
A($arg_1,$arg_n,$count);
}else{
return 'Count overlimit';
}
}else{
return 'OK' ;
}
} |
ЗЫ: Может можно и проще, но это первое, что на ум пришло. Должно вроде работать.
|
|
|
|
С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 03/02/05 в 17:25 |
В голову приходит только
function A($arg_1,$arg_n){
Тут какие то вычисления
В процессе вычислений получаем сбой, например $b='error';
if($b='error') return $b;
}
while(A($arg_1,$arg_n)='error'){
A($arg_1,$arg_n);
}
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 03/02/05 в 17:46 |
Alpha_Juno писал: | В голову приходит только
function A($arg_1,$arg_n){
Тут какие то вычисления
В процессе вычислений получаем сбой, например $b='error';
if($b='error') return $b;
}
while(A($arg_1,$arg_n)='error'){
A($arg_1,$arg_n);
} |
А можно еще немного проще :
Код: |
while($a){
$a = function A(blaj blaj);
}
function A (blaj blaj){
if (error)
return FALSE;
else
return TRUE;
}
|
|
|
|
|
С нами с 07.06.00
Сообщения: 3516
Рейтинг: 1802
|
Добавлено: 03/02/05 в 18:47 |
Угу. Если это возможно, то рекурсии лучше избежать.
Но изначально вопрос ставился : "Нужно чтобы... функция завершила рабту и перезапустила себя ".
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 03/02/05 в 20:42 |
sAx писал: | Угу. Если это возможно, то рекурсии лучше избежать.
Но изначально вопрос ставился : "Нужно чтобы... функция завершила рабту и перезапустила себя ". |
Тогда вариант с ошибкой отпадает , т.к. будет ошибка или нет серавно функция будет запущена опять , фактически нужно просто убрать условие в коде который я написал выше.
|
|
|
|
С нами с 30.06.03
Сообщения: 794
Рейтинг: 202
|
Добавлено: 04/02/05 в 04:44 |
Всем спасибо
Сделал свой вариант, и что самое интересное, работает как надо=)))
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |