1

我将尝试用带注释的代码来解释我想要实现的目标。

如果满足条件,我想要做的是跳过 if 语句并继续执行条件语句之外的代码。

<?php
  if (i>4) {
    //if this condition met skip other if statements and move on
  }

  if (i>7) {
    //skip this
?>

<?php
  move here and execute the code
?>

我知道 break、continue、end 和 return 语句,但这在我的情况下不起作用。

我希望这能解决我的问题。

4

5 回答 5

4

如果您的第一个条件满足并且您想跳过其他条件,您可以使用任何标志变量,如下所示:

<?php
        $flag=0;
        if (i>4)
        {
          $flag=1;
        //if this condition met skip other if statements and move on
        }

        if (i>7 && flag==0)
        {
        //skip this
        ?>

        <?php
        move here and execute the code
        ?>
于 2013-08-06T04:47:39.700 回答
3

你可以使用一个goto

<?php
if (i>4)
{
//if this condition met skip other if statements and move on
goto bottom;
}

if (i>7)
{
//skip this
?>

<?php
bottom:
// move here and execute the code
// }
?>

但话又说回来,注意恐龙。

转到xkcd

于 2013-08-06T05:04:53.863 回答
3

使用if-elseif-else

if( $i > 4 ) {
    // If this condition is met, this code will be executed,
    //   but any other else/elseif blocks will not.
} elseif( $i > 7 ) {
    // If the first condition is true, this one will be skipped.
    // If the first condition is false but this one is true,
    //   then this code will be executed.
} else {
    // This will be executed if none of the conditions are true.
}

从结构上讲,这应该是您正在寻找的。尽量避免任何会导致意大利面条式代码的东西,如goto,breakcontinue.

附带说明一下,您的条件并没有多大意义。如果$i不大于 4,则永远不会大于 7,因此永远不会执行第二个块。

于 2013-08-06T06:48:53.610 回答
1

我通常设置某种标记,例如:

<?php
    if (i>4)
    {
    //if this condition met skip other if statements and move on
    $skip=1;
    }

    if (i>7 && !$skip)
    {
    //skip this
    ?>

    <?php
    move here and execute the code
    ?>
于 2013-08-06T04:47:19.417 回答
0
<?php
  while(true)
  {
    if (i>4)
    {
    //if this condition met skip other if statements and move on
    break;
    }

    if (i>7)
    {
    //this will be skipped
    }
  }    
?>

    <?php
    move here and execute the code
    ?>
于 2017-08-08T19:50:33.993 回答