【问题标题】:PHP - Break after return?PHP - 返回后中断?
【发布时间】:2011-11-08 23:47:39
【问题描述】:

我需要在这里使用 break 还是会停止循环并只返回一次?

for($i = 0; $i < 5; $i ++) {
    if($var[$i] === '') return false;
    // break;
}

谢谢!

【问题讨论】:

    标签: php for-loop return break


    【解决方案1】:

    更新

    PHP 7 需要return。不需要break;,因为循环在return 结束。

    break; 通常在您找到所需项目时用于切换或循环。

    示例:

    $items = ['a' , 'b' , 'c']; 
    
    foreach($items as $item) 
    { 
       if($item == 'a') 
       {
           return true; // the foreach will stop once 'a' is found and returns true. 
       }
       
       return false; // if 'a' is not found, the foreach will return false.
    }
    

    或:

    $items = ['a' , 'b' , 'c']; 
        
    foreach($items as $item)
    {
        return $item == 'a'; // if 'a' is found, true is returned. Otherwise false.
    }
    

    【讨论】:

    • return 有效。简单示例:$items = ['a' , 'b' , 'c']; foreach($items as $item) { echo $item; if($item == 'a') return true; }
    • 感谢@EGurelli。我已经添加并编辑了您的示例。
    【解决方案2】:

    如果您使用return,您的函数(或整个脚本)将返回 - 之后的所有代码都不会执行。所以回答你的问题:这里不需要break。但是,如果break 没有在此处注释掉,则循环将在一次迭代后停止。这是因为您的 if 语句不使用大括号 ({ ... }),因此它仅涵盖 return 语句(换句话说:您的示例中的 break 始终被执行)。

    【讨论】:

      【解决方案3】:

      它将只运行一次,停止循环,并退出函数/方法。

      可以说这是一种不好的风格。后面很容易忽略return,不利于调试和维护。

      使用break 可能更简洁:

      for($i = 0; $i < 5; $i ++) {
          if($var[$i] === '')
           { set_some_condition; 
             break;
           }
      }
      
      if (some_condition)
       return;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2016-08-03
        • 1970-01-01
        • 2015-12-15
        • 2010-12-04
        • 1970-01-01
        • 2016-07-22
        相关资源
        最近更新 更多