一、代码世界也需要“红绿灯”?
朋友们好呀,今天咱们来聊聊PHP里那些能让你代码“瞬移”的神奇玩意儿——跳转语句。说白了,就是教你的代码“学会偷懒”,别像个傻小子一样从头跑到尾。
想象一下这个场景:你在餐厅后厨当监工,要检查50道菜的质量。第一道菜就发现了地沟油,难道你还傻乎乎地把剩下49道都尝完?当然是立刻拍桌子:“停!后厨检查不合格!”——这就是break的日常。
或者你在看一部30集的电视剧,中间插播了烦人的广告,你肯定不是关掉电视吧?而是拿起遥控器“快进跳过广告”,然后继续看正片——这就是continue的哲学。
更有甚者,你正在玩一款开放世界游戏,不想慢慢跑图,直接点开地图传送到任务点——这就是goto的争议人生。
二、Break:代码界的“紧急制动按钮”
1. 基础用法:单层循环的“到此为止”
Break是跳转语句家族里最乖的孩子,也是你最早会遇到的。它的核心作用就一句话:立即结束当前循环或switch结构。
来看个简单例子:
<?php
// 场景:检查购物车里有没有过期商品,有的话整个订单都取消
$cartItems = ['牛奶', '面包', '过期饼干', '鸡蛋'];
$hasExpired = false;
foreach ($cartItems as $item) {
echo "正在检查:$item<br>";
if ($item === '过期饼干') {
echo "⚠️ 发现过期商品!整个订单取消!<br>";
$hasExpired = true;
break; // 这里!发现过期就直接跳出循环,后面的鸡蛋不检查了
}
}
if (!$hasExpired) {
echo "✅ 所有商品检查通过,可以结账!";
}
?>
2. 高级玩法:Break的数字参数
PHP中的break有个隐藏技能——可以带数字参数,表示要跳出几层循环。这个功能很多人不知道,但特别有用!
<?php
// 场景:在二维数组(比如游戏地图)里找宝藏,找到就收工
$gameMap = [
[1, 2, 3],
[4, '宝藏', 6],
[7, 8, 9]
];
echo "开始寻宝之旅!<br>";
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
echo "正在搜索位置($i, $j)...<br>";
if ($gameMap[$i][$j] === '宝藏') {
echo "🎉 发现宝藏!位置:($i, $j)<br>";
echo "停止一切搜索工作!<br>";
break 2; // 跳出2层循环!直接结束所有搜索
}
}
echo "第{$i}行搜索完毕<br>"; // 如果找到宝藏,这行不会执行
}
echo "寻宝任务结束";
?>
3. 实战注意点
- Break只能用在循环和switch里,放在别处PHP会一脸懵圈
- 在switch里,break是标配,不然会“贯穿执行”
- 多层循环时,如果不指定数字参数,默认只跳出一层
三、Continue:聪明的“跳过健将”
1. 核心思想:跳过本次,继续下次
如果说break是“辞职不干了”,那么continue就是“这个任务我不想做,换下一个”。
典型应用场景:批量处理数据时,跳过不符合条件的项。
<?php
// 场景:给用户发送促销短信,但VIP用户和黑名单用户不打扰
$users = [
['name' => '张三', 'type' => 'normal', 'phone' => '13800138001'],
['name' => '李四', 'type' => 'vip', 'phone' => '13800138002'],
['name' => '王五', 'type' => 'blacklist',

最低0.47元/天 解锁文章
1327

被折叠的 条评论
为什么被折叠?



