如果if语句为true,则运行函数(For循环)

时间:2018-07-19 11:38:57

标签: php loops oop for-loop

我有一个我无法解决的问题。所以我有for循环。

所以这是小代码:

  for ($i=0;$i<3;$i++) {
      $int = $i + 1;
      if($sms->mobio_check($servID,$request->input("code$int"))) {
          continue;
          $cart->success($product->id,$product->server->name);
      } else {
          return redirect()->to(route('mcCheckoutFailed'))->withErrors(['codeError'=>__('messages.invalidCode',['input'=>$int])]);
      }
  }

我想让三个if返回true来运行函数$sms->success();

这是怎么了?

3 个答案:

答案 0 :(得分:1)

您可以依靠以下事实:如果循环结束,那么就可以了,任何失败都会导致循环中的return退出...

for ($i=0;$i<3;$i++) {
      $int = $i + 1;
      if( ! $sms->mobio_check($servID,$request->input("code$int"))) {
          return redirect()->to(route('mcCheckoutFailed'))->withErrors(['codeError'=>__('messages.invalidCode',['input'=>$int])]);
      }
}

$cart->success($product->id,$product->server->name);

答案 1 :(得分:0)

您可以这样做:

  $success = true;
  for ($i=0;$i<3;$i++) {
      $int = $i + 1;
      if($success = $success || $sms->mobio_check($servID,$request->input("code$int"))) {
          continue;
          $cart->success($product->id,$product->server->name);
      } else {
          return redirect()->to(route('mcCheckoutFailed'))->withErrors(['codeError'=>__('messages.invalidCode',['input'=>$int])]);
      }
  }
if ($success) $sms->success();

答案 2 :(得分:0)

您可以尝试

 $count = 0;
for ($i=0;$i<3;$i++) {
  $int = $i + 1;
  if($sms->mobio_check($servID,$request->input("code$int"))) {
      $count++;
  } else {
      return redirect()->to(route('mcCheckoutFailed'))->withErrors(['codeError'=>__('messages.invalidCode',['input'=>$int])]);
  }
}
if($count == 3) 
$cart->success($product->id,$product->server->name);