我尝试用嵌套的if代码重构一些嵌套的循环,然后分离其中一个嵌套的if,并创建它自己的方法。
任何重构这类代码的技巧和技巧都是非常受欢迎的。
注意:这些只是示例,原始代码中有很多嵌套循环和嵌套if。
前面的代码:
function bar()
{
$is_baz = 'BAZ';
$is_bas = 'BAS';
while (TRUE) {
echo 'Im';
if ($is_baz == 'BAZ') {
if ($is_bas == 'BAS') {
echo 'here';
break;
} else {
echo 'not here';
}
}
echo '!!!';
break;
}
echo 'too';
}重构后的代码:
function foo($is_bas)
{
if ($is_bas == 'BAS') {
echo 'here';
break;
} else {
echo 'not here';
}
}
function bar()
{
$is_baz = 'BAZ';
$is_bas = 'BAS';
while (TRUE) {
echo 'Im';
if ($is_baz == 'BAZ') {
foo($is_bas);
}
echo '!!!';
break;
}
echo 'too';
}预期结果: Imheretoo
发布于 2019-04-29 07:48:27
您不能直接从函数内部中断外部循环,但可以返回一个值来通知外部循环中断:
function foo($is_bas)
{
if ($is_bas == 'BAS') {
echo 'here';
return true;
}
return false;
}
function bar()
{
$is_baz = 'BAZ';
$is_bas = 'BAS';
while (TRUE) {
echo 'Im';
if ($is_baz == 'BAZ') {
if (foo($is_bas)) break;
}
echo '!!!';
break;
}
echo 'too';
}
bar();输出:
Imheretoo发布于 2019-04-29 12:12:21
function foo($is_bas)
{
if ($is_bas == 'BAS') {
echo 'here';
return true;
}
echo 'not here';
return false;
}
function bar()
{
$is_baz = 'BAZ';
$is_bas = 'BAS';
while (TRUE) {
echo 'Im';
if ($is_baz == 'BAZ' && foo($is_bas)) {
break;
}
echo '!!!';
break;
}
echo 'too';
}
bar();https://stackoverflow.com/questions/55895483
复制相似问题