PHP 7.4中的数值文字分隔符(Numeric Literal Separator )
php  /  管理员 发布于 7年前   284
PHP 7.4中的数值文字分隔符(Numeric Literal Separator )
介绍
人类的眼睛并没有为快速解析长数字序列而优化。因此,缺乏可视分隔符会使读取和调试代码的时间更长,并可能导致意外的错误。
1000000000; // Is this a billion? 100 million? 10 billion?107925284.88; // What scale or power of 10 is this?
此外,没有视觉分隔符,数字文字无法传达任何额外的信息,例如财务数量是否以美分存储:
$discount = 13500; // Is this 13,500? Or 135, because it's in cents?
建议
通过支持数字文字中的下划线来可视化地分隔数字组,从而提高代码的可读性。
$threshold = 1_000_000_000; // a billion!$testValue = 107_925_284.88; // scale is hundreds of millions$discount = 135_00; // $135, stored as cents
下划线分隔符可用于PHP支持的所有数值文字符号中:
6.674_083e-11; // float299_792_458; // decimal0xCAFE_F00D; // hexadecimal0b0101_1111; // binary0137_041; // octal
限制
唯一的限制是数字文字中的每个下划线必须直接位于两个数字之间。这条规则意味着下面的用法都不是有效的数字文字:
_100; // already a valid constant name // these all produce "Parse error: syntax error":100_; // trailing1__1; // next to underscore1_.0; 1._0; // next to decimal point0x_123; // next to x0b_101; // next to b1_e2; 1e_2; // next to e
PHP功能不受影响
在数字文字的数字之间添加下划线不会改变其值。下划线在词法分析阶段被删除,因此运行时不受影响。
var_dump(1_000_000); // int(1000000)
此RFC不会将字符串的行为更改为数字转换。数字分隔符旨在提高代码的可读性,而不是改变输入的处理方式。
向后不兼容的更改
没有。
翻译:https://wiki.php.net/rfc/numeric_literal_separator
以上就是PHP 7.4中的数值文字分隔符(Numeric Literal Separator )的详细内容,更多请关注其它相关文章!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号