Jörgs Webnotizen

PHP 7.3: „continue“ targeting switch is equivalent to „break“.

Nach einem Upgrade auf PHP 7.3 kann ein Error-Logfile erstmals folgende PHP-Warnung beinhalten:

Warning: „continue“ targeting switch is equivalent to „break“. Did you mean to use „continue 2“?

Der Hintergrund dieser Warnung wird in einem RFC erläutert: „continue;“ wird innerhalb von einem Switch-Block in PHP wie „break;“ interpretiert, in C dagegen wie „continue 2;“, womit es sich nicht auf den Switch-Block, sondern auf einen äußeren Block beziehen würde. Insbesondere im Hinblick auf Programmierer, welche nur gelegentlich in PHP coden, soll dieser „PHP-ismus“ als potentielle Fehlerquelle beseitigt werden. In PHP 7.3 wird continue an dieser Stelle deswegen als deprecated (veraltet) markiert und soll in PHP 8 schließlich einen Compile-Error erzeugen.

Die Warnung verschwindet, wenn man in einem Switch-Block anstelle von „continue;“ „break;“ verwendet. Beispielsweise würde man diesen Code-Abschnitt:

switch ($foo) {
    case "bar":
        continue;
}

… einfach folgendermaßen abändern:

switch ($foo) {
    case "bar":
        break;
}

Derzeit werden die Warnungen auch beim Aufruf von WordPress-Seiten erzeugt, es gibt aber auch bereits einen Commit, der das Problem behebt.

Tags: PHP, WordPress

Kommentar schreiben

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Kommentare werden erst nach Freischaltung veröffentlicht