Skip to content

Instantly share code, notes, and snippets.

@thcipriani
Last active November 8, 2017 11:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save thcipriani/4616042 to your computer and use it in GitHub Desktop.
Save thcipriani/4616042 to your computer and use it in GitHub Desktop.
<?php
$arr = array(1, 2, 3);
/**
* PHP Weirdness 1
* 'continue' acts like 'break' inside of a switch statement when inside of a loop
* whereas 'continue' acts as expected inside an elseif block
*/
foreach ($arr as $item) {
switch($item) {
case 1:
echo 'one';
break;
case 2:
echo 'two';
continue;
case 3:
echo 'three';
break;
}
echo ' wasn\'t skipped' . PHP_EOL;
}
/**
* OUTPUT:
* one wasn't skipped
* two wasn't skipped
* three wasn't skipped
*/
// -------- VS. ---------- //
foreach ($arr as $item) {
if ($item == 1) {
echo 'one';
} elseif ($item == 2) {
echo 'two';
continue;
} elseif ($item == 3) {
echo 'three';
}
echo ' wasn\'t skipped' . PHP_EOL;
}
/**
* OUTPUT:
* one wasn't skipped
* twothree wasn't skipped
*/
// -------- FIX! ---------- //
foreach ($arr as $item) {
switch($item) {
case 1:
echo 'one';
break;
case 2:
echo 'two';
continue 2;
case 3:
echo 'three';
break;
}
echo ' wasn\'t skipped' . PHP_EOL;
}
/**
* end Weirdness 1
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment