rfc:alpanumeric_decrement

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rfc:alpanumeric_decrement [2014/01/21 16:10]
ajf
rfc:alpanumeric_decrement [2017/09/22 13:28]
Line 1: Line 1:
  
-====== PHP RFC: Alphanumeric Decrement ====== 
-  * Version: 1.0 
-  * Date: 2013-12-16 (use today'​s date here) 
-  * Author: Andrea Faulds <​ajf@ajf.me>​ 
-  * Status: In voting phase 
-  * First Published at: http://​wiki.php.net/​rfc/​alphanumeric_decrement 
- 
-===== Introduction ===== 
- 
-This will add support for decrementing alphanumeric strings ("​ab",​ for example) to complement the existing incrementing behaviour. 
- 
-===== Proposal ===== 
- 
-At present, incrementing alphanumeric strings is supported. For example: 
- 
-  $x = "​z";​ 
-  $x++; 
-  // $x is now "​aa"​ 
- 
-However, decrementing alphanumeric strings is not: 
- 
-  $x = "​z";​ 
-  $x--; 
-  // $x is still "​z"​ 
- 
-Under this proposal, alphanumeric strings would be decrementable:​ 
- 
-  $x = "​z";​ 
-  $x--; 
-  // $x is now "​y"​ 
- 
-It would also handle the edge case of decrementing from "​a",​ choosing to result in 0 (this may be subject to change): 
- 
-  $x = "​a";​ 
-  $x--; 
-  // $x is now 0 
- 
-The patch at present additionally changes how empty strings are incremented. At present, it works as follows: 
- 
-  $x = "";​ 
-  $x++; 
-  // $x is now "​1"​ (string) 
-  $x = "";​ 
-  $x--; 
-  // $x is now -1 (int) 
- 
-With this patch, it is now consistent: 
- 
-  $x = "";​ 
-  $x--; 
-  // $x is now "​-1"​ (string) 
- 
-===== Backward Incompatible Changes ===== 
- 
-This might arguably be a BC break, as now decrementing for these strings would work, while existing code might assume that doesn'​t work. I doubt there is any code relying on that though, especially since "​a"​++ is a relatively obscure feature. 
- 
-===== Proposed PHP Version(s) ===== 
- 
-Next PHP 5.x. Failing that, next PHP x. 
- 
-===== SAPIs Impacted ===== 
- 
-None. 
- 
-===== Impact to Existing Extensions ===== 
- 
-None. 
- 
-===== New Constants ===== 
- 
-None. 
- 
-===== php.ini Defaults ===== 
- 
-None. 
- 
-===== Open Issues ===== 
- 
-How should decrementing "​a"​ be handled? The patch and behaviour as proposed decrement to 0, however possibly not decrementing and emitting a warning might make more sense. 
- 
-===== Unaffected PHP Functionality ===== 
- 
-Does not affect $x += 1 and $x -= 1, nor $x = $x + 1 and $x = $x - 1, as both of these do not support alphanumeric increment at present. 
- 
-===== Future Scope ===== 
- 
-In future, alphanumeric increment being supported $x += 1 and $x = $x + 1 might be desirable, but that is not within the scope of this RFC. 
- 
-===== Vote ===== 
- 
-Merge into PHP 5.6? (Will assume this requires 2/3 majority, due to new language feature) 
- 
-<doodle title="​Alphanumeric Decrement"​ auth="​ajf"​ voteType="​single"​ closed="​false">​ 
-   * Yes 
-   * No 
-</​doodle>​ 
- 
-===== Patches and Tests ===== 
- 
-https://​github.com/​php/​php-src/​pull/​546 
- 
-Considered final patch, unless bugs are found. 
- 
-===== Implementation ===== 
- 
-Not merged in at present. 
- 
-===== References ===== 
- 
-Mailing list discussion: http://​marc.info/?​l=php-internals&​m=138687859827708&​w=1 
- 
-===== Rejected Features ===== 
- 
-None as yet? 
rfc/alpanumeric_decrement.txt · Last modified: 2017/09/22 13:28 (external edit)