我从hotscripts.com下载了一个用PHP编写的免费通讯
我更新了一些代码来添加新功能,我看到了一些我不理解的东西.
在代码中我看到:
foreach() { ...
if() ...
break;
elseif() ...
continue;
}
Run Code Online (Sandbox Code Playgroud)
我也看到了:
function() {
// ...
for($nl = 0; ...
if() ...
return true;
}
Run Code Online (Sandbox Code Playgroud)
我读过这break;
将停止循环,continue
将跳过循环到下一次迭代并return
退出该函数.
我不明白为什么编码那种风格?为什么不使用类似的东西:
function() {
// ...
for($nl = 0; ...
if() ...
$returnValue = true;
else {
$returnValue = false;
}
}
return $returnValue;
}
Run Code Online (Sandbox Code Playgroud)
或者for循环中的相同想法?
Fil*_*efp 35
使用诸如break
和之类的关键字continue
可以使代码比您建议的更容易阅读.
特别是如果你将if/else-statements嵌套在一个以上的级别.
比较这篇文章中的片段,哪一个更容易阅读?它们都输出完全相同的东西,而且$A
是array (1,2,4,4,3,4)
.
一个return
在一个循环(一个函数内)可以节省宝贵的CPU周期,如果你知道你不需要任何环路进一步,为什么这样做?
break
/ continue
..$not_even_found = false;
foreach ($A as $v) {
if ($v != 1) {
if ($not_even_found) {
} else if ($v % 2 != 0) {
$not_even_found = true;
} else {
echo "$v\n";
}
}
}
Run Code Online (Sandbox Code Playgroud)
foreach ($A as $v) {
if ($v == 1)
continue;
if ($v % 2 != 0)
break;
echo "$v\n";
}
Run Code Online (Sandbox Code Playgroud)
Nic*_*tti 13
您使用该样式进行编码,以便在第一次满足条件时保存不必要的循环,然后您现在已经确定某些内容并且您不需要进一步调查.
事实上,如果你回来,你停止循环.一个愚蠢的例子
function in_array($needle, $haystack){
for($i = 0; $i < count($haystack); i++){
if($needle === $haystack[$i]{
return $i;
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当满足条件时,你返回一些东西(true,或者在这种情况下是计数器的值),因为你不需要在整个数组上使用iterato