PHP foreach 中 switch使用continue的一个坑

lys2020年10月10日 0条评论

PHP foreach 中 switch使用continue的一个坑

<?php

$attestation = [
   'baz' => 1,
   'baz2' => 2,
];
foreach ($attestation as $key => $info) {
    switch ($key) {
            case "baz": 
                  continue; // In PHP: Behaves like "break;"
                  break;
                            // In C:   Behaves like "continue 2;"
    }
    echo "1".PHP_EOL;
}

会发现输出

1
1

这边需要改为

<?php

$attestation = [
   'baz' => 1,
   'baz2' => 2,
];
foreach ($attestation as $key => $info) {
    switch ($key) {
            case "baz": 
                  continue 2; // In PHP: Behaves like "break;"
                  break;
                            // In C:   Behaves like "continue 2;"
    }
    echo "1".PHP_EOL;
}

会发现输出

1