php之goto代码应用
看起来高大上、用得好可以提升代码可读性、使代码看起来更加优雅
示例代码:
dump('a');
goto WORK;
dump('b');//绕过执行
goto WORK2;//绕过执行
WORK:
dump('c');
WORK2:
dump('d');
FINISH:
dump('e');
//输出结果是a,c,d,e
通过示例代码可以窥探goto的代码运行机制
此处的dump(b)和dump(d), php代码其实绕过了dump(b)和goto WORK2;但是WORK2的代码块又被默认执行了
循环用法:
for ($i = 0; $i < 10; $i++) {
for ($j = 0; $j < 10; $j++) {
for ($k = 0; $k < 10; $k++) {
if ($i == 5 && $j == 5 && $k == 5) {
goto end_loop;
}
// 其他代码逻辑
}
}
}
end_loop:
echo "Loop ended at i=$i, j=$j, k=$k";
此处的goto效果其实等与break 3;多层循环跳出goto是个很好的选择
复杂条件的if,else也可以选择用goto优化,代码会比较清晰
if(条件1){
if(条件2){
goto work;
}
if(条件3){
goto work;
}
if(条件4){
goto work;
}
if(条件5){
goto error;
}
}else {
goto error;
}
work:
...
return
error:
...
return