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)

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 = '')

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)

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($string)

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($string, $format = null)

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 **** **** ****