PHP - 返回后中断?

Posted

技术标签:

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

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

for($i = 0; $i < 5; $i ++) 
    if($var[$i] === '') return false;
    // 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;

【讨论】:

以上是关于PHP - 返回后中断?的主要内容,如果未能解决你的问题,请参考以下文章

ARM中断深入分析几点

PHP后台作业到ubuntu xampp服务器,60-70分钟后被服务器中断

51单片机串口中断函数响应并返回后主函数运行到末尾后卡着不动,主函数无法循环了

UINavigationBar 在中断从左边缘手势向右滑动后显示返回按钮,如何隐藏它以及为啥显示它?

线程中断

页面导航后 WPF MVVM 数据绑定中断