使用exit()/ die()后如何继续php脚本

时间:2015-02-26 08:12:23

标签: php image for-loop rgb exit

例如,我有以下脚本。

在这种情况下,我想得到X1和Y1的值 但是exit()不允许我这样做

请帮忙 提前致谢 特别感谢Mark Setchell:P(如果他看到这个)

image link

 $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

7 个答案:

答案 0 :(得分:4)

您可以使用break 2;从两个嵌套for循环中断,而x1y1的下一个for循环也将执行。

答案 1 :(得分:1)

exit

  

exit - 输出消息并终止当前脚本

<强> die

  

die - 相当于退出

因此,你不能这样做,期间。但是,您可以重新考虑您不必使用退出的解决方案,因为您希望继续执行,然后exit位于错误的位置。

现在解决方案:当你的状况得到满足时,你可以摆脱你的循环。

<强> break

  

break结束当前for,foreach,while,do-while或switch结构的执行。

这样你的循环就会结束,你将能够在不退出的情况下继续下一个循环。

答案 2 :(得分:1)

嗯,这是不可能的。

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

是旨在杀死PHP进程的语言构造。正如Manual所说:

  

输出消息并终止当前脚本

如果您希望脚本继续使用,请不要使用它。

在循环中,您可以使用两个您可能感兴趣的结构:

break; - 立即结束循环并在循环后继续编码 continue; - 立即跳过当前循环迭代并进入下一次迭代

答案 3 :(得分:0)

您不应该使用die()exit(),而应使用break功能。 Click Here,了解更多信息。

仅当您要结束脚本时,才应使用

exit()die()

  

退出 - 输出消息并终止当前脚本文档here

     

die - 相当于exit,docs here

答案 4 :(得分:0)

检查http://php.net/manual/en/control-structures.break.php

取决于你的范围,你可以使用break 1或break 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;
        }
    }

答案 5 :(得分:0)

除非您使用condition或switch语句,否则无法在die()exit()之后运行脚本。

答案 6 :(得分:0)

如果您希望在呈现页面后继续运行脚本,则可能需要运行后台php进程,除非您在for循环终止时要求仅对页面运行更多更改,在这种情况下,break;最好。

stack overflow php background process