首頁 >專題 >PHP7 > 正文

PHP 7.4中的數值文字分隔符(Numeric Literal Separator )

原創2019-11-30 18:01:310619
第十期線上培訓班
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; // float
299_792_458;   // decimal
0xCAFE_F00D;   // hexadecimal
0b0101_1111;   // binary
0137_041;      // octal

限制

唯一的限制是數字文字中的每個下劃線必須直接位于兩個數字之間。這條規則意味著下面的用法都不是有效的數字文字:

_100; // already a valid constant name
 
// these all produce "Parse error: syntax error":
100_;       // trailing
1__1;       // next to underscore
1_.0; 1._0; // next to decimal point
0x_123;     // next to x
0b_101;     // next to b
1_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 )的詳細內容,更多請關注php中文網其它相關文章!

php中文網最新課程二維碼
  • 相關標簽:PHP 7.4
  • 本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
  • 相關文章

    相關視頻


    網友評論

    文明上網理性發言,請遵守 新聞評論服務協議

    我要評論
  • 專題推薦

    推薦視頻教程
  • PHP7新特性手冊PHP7新特性手冊
  • PHP7的內核剖析PHP7的內核剖析
  • php7實戰開發cms內容管理系統php7實戰開發cms內容管理系統
  • 視頻教程分類
    第十期線上培訓班 足彩吧合买平台