如何在条件内从循环中打印一条消息?

时间:2018-03-24 20:09:28

标签: php for-loop

假设我有这个循环:

for($i = 1; $i <= 10; $i++){
    if($i > 4){
        echo 'Greater Than 4.' . '<br/>';
    }
}

上一个循环将输出以下内容:

Greater Than 4.
Greater Than 4.
Greater Than 4.
Greater Than 4.
Greater Than 4.
Greater Than 4.

条件为真6次。

我想要做的只是打印一次此消息,因此来自同一循环和条件的输出将是:

Greater Than 4.

我认为这可以通过使用变量并在特定点给它这个值来实现,但我不知道该怎么做。

3 个答案:

答案 0 :(得分:1)

好吧,就像你的代码希望你打印一次消息一样:

$msg = 'There is no greater than 4';
for($i = 1; $i <= 10; $i++){
    if($i > 4){
        $msg =  'Greater Than 4.' . '<br/>';
        // Make any additional required code here...
    }
}

echo $msg;

答案 1 :(得分:0)

$run_once = true;
for($i = 1; $i <= 10; $i++){
    if($i > 4 AND $run_once){
        echo 'Greater Than 4.' . '<br/>';
        $run_once = false;
    }
}

你也可以使用if ($i == 4)

编辑:

for($i = 1; $i <= 10; $i++){
  if($i > 4){
    if($i == 4){
      echo 'this runs only once';
    }
    echo 'this runs every time';
  }
}

答案 2 :(得分:0)

你试过这个:)

for($i=1;$i<=10;$i++){
echo ($i>4 && !isset($rslt))?$rslt='Greater Than 4.':'';
}

或者,您可以先循环 然后打印结果 像这样

$bucket = '';
for($i=1;$i<=10;$i++){
    $bucket = ($i>4)?'Greater Than 4.':$bucket;
}
echo $bucket;
嗯,我猜你的情况是这样的:D

$bucket = $condition = '';
$flag = 1;
for($i=1;$i<=10;$i++){
    if($i>4){
       $bucket = 'Greater Than 4. <br>';
       $condition .= "Proses :{$flag}<br>";
       $flag++;
       //more condition process 6 times
    }
}
echo $condition;
echo $bucket;

或者像这样:D

$j=1;
for($i=1;$i<=10;$i++){
    if($i>4){
       if($i<=5){
          echo 'Greater Than 4. <br>';
       }
       echo 'Proses '.($j++).'<br>';
       //more condition process 6 times
    }
}

或者,用短手

for($i= $j =0;$i<=10;$i++){
  if($i>4){
     echo ($i<=5)?'TheGreater Than 4. <br>':false;
     $j++;
     echo "Process number : {$j} <br>";
  }
}