为什么这个switch语句满足两种情况?

the*_*ace 0 php loops switch-statement

我正在尝试调试这个聚合循环,并且我发现在案例一完成'Aggregated'之后它会过去并且第二个案例也是'Non-Aggregated'.知道为什么会这样吗?

<?php
$agg =  $_POST['agg'];
$m=0;
$j=0;
switch ($agg)
{
    case 'Aggregated':
    while ($m<=$i)
    {
        echo $bing_results[$m];
        echo $Faroo[$m];
        echo $Blekko[$m];
        echo 'Results AGG: '.$m;
        $m++;
    }         
    case 'Non-Aggregated':
    while ($m<=$i)
    {
       echo $Blekko[$m];
       $m++;
       echo 'Results NAG: '.$m;
    }
    $m=0;
    while ($m<=$i)
    {
        echo $Faroo[$m];
        $m++;
        echo 'Results: NAG '.$m;
    }
    $m=0;
    while ($m<=$i)
    {
        echo $bing_results[$m];
        $m++;
        echo 'Results: NAG '.$m;
    }
case 'Bing':
    while ($m<=$i)
     {
        echo $bing_results[$m];
        $m++;
        echo 'Results: Bi '.$m;
    }
case 'Blekko':
    while ($m<=$i)
    {
        echo $Blekko[$m];
        $m++;
        echo 'Results: BL '.$m;
    }
case 'Faroo':
    while ($m <=$i)
    {
        echo $Faroo[$m];
        $m++;
        echo 'Results: F '.$m;
    } 
}

?>
Run Code Online (Sandbox Code Playgroud)

Cro*_*tab 5

因为你忘了你的break;陈述.

switch ($agg)
{
    case 'Aggregated':
        while ($m<=$i)
        {
            echo $bing_results[$m];
            echo $Faroo[$m];
            echo $Blekko[$m];
            echo 'Results AGG: '.$m;
            $m++;
        }         
        break; // this is where you need your break!
    case 'Non-Aggregated':
        while ($m<=$i)
Run Code Online (Sandbox Code Playgroud)