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.
Kommentare
Ok.. Very nice!!
Thanks.