rfc:normalize_inc_dec

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
rfc:normalize_inc_dec [2013/12/19 10:00] datibbawrfc:normalize_inc_dec [2017/09/22 13:28] – external edit 127.0.0.1
Line 1: Line 1:
  
-====== PHP RFC: Your Title Here ====== +====== PHP RFC: Normalize increment and decrement operators ====== 
-  * Version: 0.1+  * Version: 0.2
   * Date: 2013-12-19   * Date: 2013-12-19
-  * Author:  +  * Author: Tjerk Meesters (datibbaw) 
-  * Status: Draft+  * Status: Abandoned
   * First Published at: https://wiki.php.net/rfc/normalize_inc_dec   * First Published at: https://wiki.php.net/rfc/normalize_inc_dec
  
 ===== Introduction ===== ===== Introduction =====
  
-This proposal aims to make the current behaviour more intuitive:+The current behaviour of increment and decrement operators is not very intuitive:
  
 <code php> <code php>
Line 18: Line 18:
 // null values // null values
 $a = null; --$a; // null $a = null; --$a; // null
 +$a = null; ++$a; // int(1)
  
 // empty strings // empty strings
Line 27: Line 28:
 ++$a; // float(13) ++$a; // float(13)
 </code> </code>
- 
-For strings, it makes two new functions available: 
- 
-  * ''str_inc($str)'' - to perform the current string increments. 
-  * ''str_dec($str)'' - the string decrement. 
  
 ===== Proposal ===== ===== Proposal =====
  
-The following behaviour is being proposed:+The proposal is: 
 +  - always treat boolean and null types as an integer, but raise a warning. 
 +  - deprecate alphanumeric increment and introduce ''str_inc()'' and ''str_dec()''
 + 
 +==== Operation on bool / null ====
  
 <code php> <code php>
 // booleans // booleans
-$a = false; ++$a; // int(1) +$a = false;  
-$a = true; --$a; // int(0)+++$a; // int(1) + warning 
 +++$a; // int(2
 +$a = true;  
 +--$a; // int(0) + warning 
 +--$a; // int(-1)
  
 // null values // null values
-$a = null; --$a; // int(-1)+$a = null; --$a; // int(-1) + warning 
 +$a = null; ++$a; // int(1) + warning 
 +</code>
  
-// empty strings +==== Operation on alphanumeric strings ====
-$a ''; ++$a; // int(1)+
  
 +<code php>
 // non-numeric strings // non-numeric strings
 $a = '12d9';  $a = '12d9'; 
Line 53: Line 59:
 ++$a; // float(13) ++$a; // float(13)
 </code> </code>
 +
 +Additionally, it makes two new string functions available:
 +
 +  * ''str_inc($str)'' - to perform the current string increments.
 +  * ''str_dec($str)'' - the string decrement.
  
 ===== Backward Incompatible Changes ===== ===== Backward Incompatible Changes =====
  
-None, since incrementing boolean and null values wasn't possible in the first place.+Incrementing ''null'' will now raise a warning; incrementing alphanumeric strings will raise a deprecation notice.
  
 ===== Proposed PHP Version(s) ===== ===== Proposed PHP Version(s) =====
  
-Next 5.x: Introduce a notice for the current string increment use case. This will help developers spot their usage more easily. +**PHP 7**
- +
-Next major: Removal of string increment using ++ and --.+
  
 ===== Open Issues ===== ===== Open Issues =====
Line 91: Line 100:
 ===== References ===== ===== References =====
  
-Links to external references, discussions or RFCs+[[https://github.com/php/php-src/pull/547|Pull Request]] 
 + 
 +The competing proposal: 
 + 
 +[[alpanumeric_decrement|Alphanumeric Decrement]]
  
 ===== Rejected Features ===== ===== Rejected Features =====
  
 Keep this updated with features that were discussed on the mail lists. Keep this updated with features that were discussed on the mail lists.
rfc/normalize_inc_dec.txt · Last modified: 2018/06/18 10:17 by cmb