如题,代码如下:
<?
if(1>=0)
{
   echo '<script>alert("1大于0,所以停止执行!");window.location="aaaa.php";</script>';
}
else
{
   echo '111111';}
for($i=0;$i<9;$++)
{
   echo $i;
}
?>
在以上代码中,执行了alert();这个部分之后,还会执行下面的FOR循环,这是怎么回事呢?

解决方案 »

  1.   

    怎麼會不執行?
    想他不執行就在location那句後面,給個return 唄。
      

  2.   

    1楼+1
    <?
    if(1>=0)
    {
      echo '<script>alert("1大于0,所以停止执行!");window.location="aaaa.php";</script>';
      return;
    }
    else
    {
      echo '111111';}
    for($i=0;$i<9;$++)
    {
      echo $i;
    }
    ?>
      

  3.   

    呃。
    说明LZ不够理解后台与前台之间的关系后台(PHP,ASP,JSP,ASPX.....等等任何后台)把一些HTML代码组织完成以后(包括所有的javascript代码),发送到浏览器(IE,Firefox,Chrome....等等任何浏览器),然后浏览器才会去展示或执行这些东西。如果不的话,后台返回的所有东西,你仅仅可以把它看作一个字符串而已,没什么神密的,后台返回的东西,就只是一些字符串,或者二进制内容(比如图片)。
    关键是浏览器拿这些字符串来怎么显示而已。而javascript,是浏览器拿到一个字符串以后,拿来执行而已。所以后台返回什么,不管怎么烂的代码,都不可能停下。后台返回的东西,烂,还是不烂,是浏览器来判断的
      

  4.   

    <?
    if(1>=0)
    {
      echo '<script>alert("1大于0,所以停止执行!");window.location="aaaa.php";</script>';
      exit();
    }
    else
    {
      echo '111111';}
    for($i=0;$i<9;$++)
    {
      echo $i;
    }
    ?>
      

  5.   

    即使在JS里,alert()之后的代码依然也会执行,何况在PHP里更是不可能终止的exit()或die()都可以终止PHP代码执行,而在JS里是return 类语句!
      

  6.   

    js运行的时候,php已经解析完毕了,所以要想阻止php脚本的运行,只能用php来完成,js是没用的