rfc:continue_on_switch_deprecation
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
rfc:continue_on_switch_deprecation [2018/06/24 15:33] – created nikic | rfc:continue_on_switch_deprecation [2018/07/07 09:18] (current) – Mark as withdrawn nikic | ||
---|---|---|---|
Line 3: | Line 3: | ||
* Author: Nikita Popov < | * Author: Nikita Popov < | ||
* Implementation: | * Implementation: | ||
- | * Status: | + | * Status: |
+ | |||
+ | **Based on the RFC discussion, we decided to instead implement this as a simple warning, which has happened in https:// | ||
===== Introduction ===== | ===== Introduction ===== | ||
Line 16: | Line 18: | ||
case " | case " | ||
continue; // In PHP: Behaves like " | continue; // In PHP: Behaves like " | ||
- | // In C: Behaves like " | + | // In C: |
} | } | ||
} | } | ||
Line 27: | Line 29: | ||
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 65: | ||
===== 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