rfc:continue_on_switch_deprecation
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionLast revisionBoth sides next revision | ||
rfc:continue_on_switch_deprecation [2018/06/24 15:33] – created nikic | rfc:continue_on_switch_deprecation [2018/06/27 16:04] – Add example of cases that stay allowed nikic | ||
---|---|---|---|
Line 16: | Line 16: | ||
case " | case " | ||
continue; // In PHP: Behaves like " | continue; // In PHP: Behaves like " | ||
- | // In C: Behaves like " | + | // In C: |
} | } | ||
} | } | ||
Line 27: | Line 27: | ||
This RFC proposes to deprecate in PHP 7.3 and remove in PHP 8 the ability to target a switch statement through continue. This is no loss in functionality (it is always possible to replace the continue with a break), but avoids a gotcha for programmers coming from other languages. | This RFC proposes to deprecate in PHP 7.3 and remove in PHP 8 the ability to target a switch statement through continue. This is no loss in functionality (it is always possible to replace the continue with a break), but avoids a gotcha for programmers coming from other languages. | ||
- | The following illustrates cases which are deprecated and by what they can be replaced at various levels of loop nesting: | + | The following |
<code php> | <code php> | ||
Line 63: | Line 63: | ||
===== Unaffected PHP Functionality ===== | ===== Unaffected PHP Functionality ===== | ||
- | Continue can still be used inside switch statements, as long as it does not target the switch. | + | Continue can still be used inside switch statements, as long as it does not target the switch. |
+ | |||
+ | To further clarify which uses of '' | ||
+ | |||
+ | <code php> | ||
+ | while ($foo) { | ||
+ | switch ($bar) { | ||
+ | case " | ||
+ | while ($xyz) { | ||
+ | continue; | ||
+ | continue 2; // Targeting the switch: Deprecated | ||
+ | continue 3; // Targeting the outer while loop: Allowed | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
===== Vote ===== | ===== Vote ===== | ||
As this is a language change, a 2/3 majority is required. | As this is a language change, a 2/3 majority is required. |
rfc/continue_on_switch_deprecation.txt · Last modified: 2018/07/07 09:18 by nikic