Jörgs Webnotizen

Jörg Kruse

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

Jörg Kruse

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

Kommentare

Ok.. Very nice!!

Thanks.

Die Kommentarfunktion wurde nach 180 Tagen automatisch geschlossen.
Fragen zu diesem Thema können auch in meinen Webmaster-Forum gestellt werden: