Num 类別
Num 类別提供額外的格式化方法與数值協作
配置
类別提供不同的方法以格式化某些类型的数字。
格式是字串,其中 0 代表回傳值的数字部分。
請注意:當變更 Num 配置,複製档案至 app/config/num.php
并變更設定,这能易於升級而不失去你的自訂設定。
phone |
字串 |
'(000) 000-0000'
|
預設的電話號码格式。
|
smart_phone |
陣列 |
array(
7 => '000-0000',
10 => '(000) 000-0000',
11 => '0 (000) 000-0000',
),
|
基於號码長度的電話號码格式。(長度 => 格式)
|
exp |
字串 |
'00-00'
|
信用卡到期日的預設格式。
|
credit_card |
字串 |
'00-00'
|
信用卡號码遮罩預設格式。
|
bytes($size = 0)
bytes 方法轉換数字(档案大小)为位元組值。
档案大小定義的格式为:SB,其中 S 是大小(1、8.5、300等),B 是位元組单位(K、MiB、GB、等)。
所有有效的位元組单位被定義於 core/lang/en/byte_units.php
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$size |
字串|整数|浮點数 |
0
|
要轉換的字串。 |
|
回傳 |
浮點数 |
範例 |
echo Num::bytes('200K'); // 204800
echo Num::bytes('5MiB'); // 5242880
echo Num::bytes('1000'); // 1000
echo Num::bytes('2.5GB'); // 2684354560
|
format_bytes 方法轉換位元組数字为可讀的格式。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$bytes |
整数 |
0
|
要格式化的数字。 |
$decimals |
整数 |
0
|
要四捨五入的小数位数。 |
|
回傳 |
字串|false |
範例 |
echo Num::format_bytes('204800'); // 200 kB
echo Num::format_bytes('214901', 1); // 209.9 kB
echo Num::format_bytes('2249010', 1); // 2.1 MB
echo Num::format_bytes('badbytes'); // false
|
quantity($num, $decimals = 0)
quantity 方法轉換数字为可讀的格式。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$num |
整数 |
必要 |
要格式化的数字。 |
$decimals |
整数 |
0
|
要四捨五入的小数位数。 |
|
回傳 |
字串|false |
範例 |
echo Num::quantity(7000); // 7K
echo Num::quantity(7500); // 8K
echo Num::quantity(7500, 1); // 7.5K
echo Num::quantity('badnumber'); // false
|
format 方法轉換数字为所給的格式。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$string |
字串 |
''
|
要格式化的数字。 |
$format |
字串 |
''
|
格式。 |
|
回傳 |
字串 |
範例 |
echo Num::format('1234567890', '(000) 000-0000'); // (123) 456-7890
echo Num::format('1234567890', '000.000.0000'); // 123.456.7890
echo Num::format('1234567890', '000.000.0000'); // 123.456.7890
echo Num::format('1', '000.000.000'); // 1..
|
mask_string($string = '', $format = '', $ignore = ' ')
mask_string 方法轉換数字为所給的格式。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$string |
字串 |
''
|
要格式化的数字。 |
$format |
字串 |
''
|
格式。 |
$ignore |
字串 |
''
|
要忽略的字元。 |
|
回傳 |
字串 |
範例 |
echo Num::mask_string('1234567812345678', '************0000');
// ************5678
echo Num::mask_string('1234567812345678', '**** **** **** 0000');
// **** **** **** 5678
echo Num::mask_string('1234567812345678', '**** - **** - **** - 0000', ' -');
// **** - **** - **** - 5678
|
format_phone 方法轉換数字为所給的格式。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$string |
字串 |
''
|
要格式化的数字。 |
$format |
字串 |
null
|
格式。當 null 時預設指向 format_phone 配置設定。 |
|
回傳 |
字串 |
範例 |
echo Num::format_phone('0612345678');
// (061) 234 5678
echo Num::format_phone('0612345678', '(00) 000 000 00');
// (06) 123 456 78
|
smart_format_phone 方法基於號码長度,
轉換数字为電話號码格式。
請注意: 数字依據長度被格式化,
这些定義在 num 配置。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$string |
字串 |
必要 |
要格式化的数字。 |
|
回傳 |
字串 |
範例 |
echo Num::smart_format_phone('1234567');
// 123-4567
echo Num::smart_format_phone('01234567890');
// 0 (123) 456-7890
|
format_exp 方法轉換数字为信用卡到期日字串。
請注意: 此方法預計提供 4 位数。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$string |
字串 |
必要 |
要格式化的数字。 |
$format |
字串 |
null
|
格式。當 null 時預設指向 exp 配置設定。 |
|
回傳 |
字串 |
範例 |
echo Num::format_exp('1234');
// 12-34
echo Num::format_exp('1234', '00/00');
// 12/34
|
mask_credit_card($string, $format = null)
mask_credit_card 方法遮罩一組信用卡號码。
靜態 |
是 |
參数 |
參数 |
类型 |
預設 |
描述 |
$string |
字串 |
''
|
要格式化的数字。 |
$format |
字串 |
null
|
格式。當 null 時預設指向 credit_card 配置設定。 |
|
回傳 |
字串 |
範例 |
echo Num::mask_credit_card('1234263583742938');
// **** **** **** 2938
echo Num::mask_credit_card('1234123412341234', '0000 **** **** ****');
// 1234 **** **** ****
|