Как продолжить скрипт php после использования exit () / die ()

Например, у меня есть следующий скрипт.

в этом случае я хочу получить значение X1 и Y1
но выход () не позволяет мне сделать это

пожалуйста помоги
заранее спасибо
и особая благодарность Марку Сетчеллу: P (если он это увидит)

ссылка на изображение

 $im = imagecreatefromjpeg("omr.jpg");
for($x=0;$x<100;$x++)   {

for($y=0;$y<100;$y++)
{

$rgb = imagecolorat($im,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if($r<128 && $g<128 && $b<128){
printf("%d,%d: %d,%d,%d\n",$x,$y,$r,$g,$b);
exit;
}
}
}

for($x1=1170;$x1<1270;$x1++){

for($y1=0;$y1<100;$y1++){

$rgb = imagecolorat($im,$x1,$y1);

$r1 = ($rgb >> 16) & 0xFF;
$g1 = ($rgb >> 8) & 0xFF;
$b1 = $rgb & 0xFF;
if($r1<128 && $g1<128 && $b1<128){
printf("%d,%d: %d,%d,%d\n",$x1,$y1,$r1,$g1,$b1);
exit;
}
}
}

токовый выход:
30,53: 123,119,118

Желаемый результат:
30,53: 123,119,118

1217,55: 115,114,112

0

Решение

Ты можешь использовать break 2; разорвать два вложенных цикла for и следующий цикл for x1 а также y1 также выполню.

4

Другие решения

выход

exit — вывести сообщение и завершить текущий скрипт

умереть

die — Эквивалент для выхода

Следовательно, вы не можете этого сделать, точка. Однако вы можете переосмыслить свое решение там, где вам не нужно использовать выход, потому что вы хотите продолжить выполнение exit находится не в том месте.

Теперь для решения: вы можете выйти из цикла, когда ваше условие выполнено.

перерыв

break завершает выполнение текущей структуры for, foreach, while, do-while или switch.

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

1

Хм, это невозможно.

exit;              // equal to:    die;
exit();            // equal to:    die();
exit('I died');    // equal to:    die('I died');

являются языковой конструкцией, предназначенной для уничтожения процесса PHP. Как Руководство говорит:

Вывести сообщение и завершить текущий скрипт

Не используйте его, если хотите, чтобы скрипт продолжался.

В циклах вы можете использовать две конструкции, которые могут вас заинтересовать:

break; — Немедленно заканчивает цикл и продолжает код после цикла
continue; — Немедленно пропускает текущую итерацию цикла и переходит к следующей итерации

1

Вы не должны использовать die() или же exit(), вы должны вместо этого использовать break функция. Кликните сюда, для получения дополнительной информации.

exit() или и die() следует использовать, только если вы хотите завершить сценарий.

exit — вывести сообщение и завершить работу текущего скрипта Вот.

die — Эквивалент для выхода, документы Вот.

0

Проверьте http://php.net/manual/en/control-structures.break.php

в зависимости от вашей сферы вы можете использовать разрыв 1 или 2,

$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1;  /* Exit only the switch. */
case 10:
echo "At 10; quitting<br />\n";
break 2;  /* Exit the switch and the while. */
default:
break;
}
}
0

Вы не можете запустить скрипт после die() или же exit() до тех пор, пока вы не используете условие или оператор switch.

0

Возможно, вы захотите запустить фоновый процесс php, если хотите продолжить выполнение скриптов после отображения страницы, если только вы не попросите просто выполнить больше изменений на странице после завершения цикла for, в данном случае break; было бы лучше.

переполнение стека php фоновый процесс

0
По вопросам рекламы [email protected]