rfc:numeric_literal_separator

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:numeric_literal_separator [2019/05/29 12:21] – Clarify that underscores do not change the value of a literal theodorejbrfc:numeric_literal_separator [2019/06/14 09:42] – Implemented nikic
Line 3: Line 3:
   * Author: Theodore Brown <theodorejb@outlook.com>, Bishop Bettini <bishop@php.net>   * Author: Theodore Brown <theodorejb@outlook.com>, Bishop Bettini <bishop@php.net>
   * Based on [[https://wiki.php.net/rfc/number_format_separator|previous RFC]] by: Thomas Punt <tpunt@php.net>   * Based on [[https://wiki.php.net/rfc/number_format_separator|previous RFC]] by: Thomas Punt <tpunt@php.net>
-  * Status: Under Discussion+  * Status: Implemented (in PHP 7.4) 
 +  * Discussion: https://externals.io/message/105714
   * Target version: PHP 7.4   * Target version: PHP 7.4
   * Implementation: https://github.com/php/php-src/pull/4165   * Implementation: https://github.com/php/php-src/pull/4165
Line 68: Line 69:
 ===== Unaffected PHP Functionality ===== ===== Unaffected PHP Functionality =====
  
-Adding underscores to a numeric literal will not change its value. +Adding an underscore between digits in a numeric literal will not 
-Underscores in numeric literals will be stripped out during the +change its value. The underscores are stripped out during the lexing 
-lexing stage, so the runtime will not be affected.+stage, so the runtime is not affected.
  
 <code php> <code php>
Line 168: Line 169:
 literal, which allows searching for a value like "_6F_" to find only literal, which allows searching for a value like "_6F_" to find only
 the numbers containing that specific byte. the numbers containing that specific byte.
 +
 +==== Should it be the role of an IDE to group digits? ====
 +
 +It has been suggested that numeric literal separators aren't needed
 +for better readability, since IDEs could be updated to automatically
 +display large numbers in groups of three digits.
 +
 +However, it isn't always desirable to group numbers the same way.
 +For example, a programmer may write ''10050000'' differently
 +depending on whether or not it represents a financial quantity stored
 +as cents:
 +
 +<code php>
 +$total = 100_500_00; // represents $100,500.00 stored as cents
 +
 +$total = 10_050_000; // represents $10,050,000
 +</code>
 +
 +Binary and hex literals may also be grouped by a varying number of
 +digits to reflect how they are used (e.g. bits may be separated into
 +nibbles, bytes, or words). An IDE cannot do this automatically
 +without knowing the programmer's intent for each numeric literal.
  
 ==== Why resurrect this proposal? ==== ==== Why resurrect this proposal? ====
Line 220: Line 243:
 ===== Vote ===== ===== Vote =====
  
-Add numeric literal separators in PHP 7.4? Yes/No.+Voting started 2019-05-30 and ended 2019-06-13. 
 + 
 +<doodle title="Support numeric literal separator in PHP 7.4?" auth="theodorejb" voteType="single" closed="true"> 
 +   Yes 
 +   No 
 +</doodle>
  
 ===== References ===== ===== References =====
rfc/numeric_literal_separator.txt · Last modified: 2019/08/19 19:58 by theodorejb