PHP 7.2's "switch" optimisations

PHP 7.2's "switch" optimisations

<?php
$cc = "no";
switch ( $cc )
{
        case 'de': echo "DEUTSCH"; break;
        case 'en': echo "English"; break;
        case 'nl': echo "Nederlands"; break;
        case 'no': echo "Norsk"; break;
        default:
                echo "unknown"; break;
}
?>

<?php
$cc = "no";
if ($cc == 'de') {
        echo "DEUTSCH";
} else if ($cc == 'en') {
        echo "English";
} else if ($cc == 'nl') {
        echo "Nederlands";
} else if ($cc == 'no') {
        echo "Norsk";
} else {
        echo "unknown"; break;
}
?>

<?php
$cc = "no";
$_table = [ "de" => 1, "en" => 2, "nl" => 3, "no" => 4 ];
if (gettype($cc) == 'string') {
        if (array_key_exists($cc, $_table)) {
                goto "jmp_{$_table[$cc]}";
        } else {
                goto jmp_default;
        }
} else {
        /* do original if/else if/else sequence */
}
jmp_1: echo "DEUTSCH"; goto end;
jmp_2: echo "English"; goto end;
jmp_3: echo "Nederlands"; goto end;
jmp_4: echo "Norsk"; goto end;
jmp_default: echo "unknown";
end:
?>

Comments

Popular posts from this blog

A Tailwind CSS Preset for Laravel 5.5

Short and safe array iteration

PHPStorm's performance