数値ヘルパー
数値ヘルパーファイルには、ロケールを意識した方法で数値データを操作するのに役立つ関数が含まれています。
このヘルパーの読み込み
このヘルパーは、次のコードを使用して読み込まれます
<?php
helper('number');
問題が発生した場合
PHP の国際化および地域化ロジックが、指定されたロケールと言語オプションで提供された値を処理できない場合、BadFunctionCallException()
がスローされます。
利用可能な関数
以下の関数が利用可能です
- number_to_size($num[, $precision = 1[, $locale = null]])
- パラメータ:
**$num** (
mixed
) – バイト数**$precision** (
int
) – 浮動小数点精度
- 戻り値:
フォーマットされたデータサイズ文字列、または提供された値が数値でない場合は false
- 戻り値の型:
文字列
数値をサイズに基づいてバイトとしてフォーマットし、適切な接尾辞を追加します。例
<?php echo number_to_size(456); // Returns 456 Bytes echo number_to_size(4567); // Returns 4.5 KB echo number_to_size(45678); // Returns 44.6 KB echo number_to_size(456789); // Returns 447.8 KB echo number_to_size(3456789); // Returns 3.3 MB echo number_to_size(12345678912345); // Returns 1.8 GB echo number_to_size(123456789123456789); // Returns 11,228.3 TB
オプションの2番目のパラメーターを使用すると、結果の精度を設定できます
<?php echo number_to_size(45678, 2); // Returns 44.61 KB
オプションの3番目のパラメーターを使用すると、数値の生成時に使用するロケールを指定できます。ロケールを指定しないと、リクエストが分析され、ヘッダーまたはアプリケーションのデフォルトから適切なロケールが取得されます
<?php // Generates 11.2 TB echo number_to_size(12345678912345, 1, 'en_US'); // Generates 11,2 TB echo number_to_size(12345678912345, 1, 'fr_FR');
注意
この関数によって生成されるテキストは、次の言語ファイルにあります。 *language/<your_lang>/Number.php*
- number_to_amount($num[, $precision = 1[, $locale = null])
- パラメータ:
**$num** (
mixed
) – フォーマットする数値**$precision** (
int
) – 浮動小数点精度**$locale** (
string
) - フォーマットに使用するロケール
- 戻り値:
人間が読めるバージョンの文字列、または提供された値が数値でない場合は false
- 戻り値の型:
文字列
数値を、123.4兆のような人間が読めるバージョンに変換します。京までの数値に対応します。例
<?php echo number_to_amount(123456); // Returns 123 thousand echo number_to_amount(123456789); // Returns 123 million echo number_to_amount(1234567890123, 2); // Returns 1.23 trillion echo number_to_amount('123,456,789,012', 2); // Returns 123.46 billion
オプションの2番目のパラメーターを使用すると、結果の精度を設定できます
<?php echo number_to_amount(45678, 2); // Returns 45.68 thousand
オプションの3番目のパラメーターでロケールを指定できます
<?php echo number_to_amount('123,456,789,012', 2, 'de_DE'); // Returns 123,46 billion
- number_to_currency($num, $currency[, $locale = null[, $fraction = 0]])
- パラメータ:
**$num** (
float
) – フォーマットする数値**$currency** (
string
) – 通貨の種類 (USD、EUR など)**$locale** (
string|null
) – フォーマットに使用するロケール**$fraction** (
integer
) – 小数点以下の桁数
- 戻り値:
ロケールに応じた適切な通貨で表された数値
- 戻り値の型:
文字列
USD、EUR、GBP などの一般的な通貨形式の数値を変換します
<?php echo number_to_currency(1234.56, 'USD', 'en_US', 2); // Returns $1,234.56 echo number_to_currency(1234.56, 'EUR', 'de_DE', 2); // Returns 1.234,56 € echo number_to_currency(1234.56, 'GBP', 'en_GB', 2); // Returns £1,234.56 echo number_to_currency(1234.56, 'YEN', 'ja_JP', 2); // Returns YEN 1,234.56
ロケールを指定しない場合は、リクエストロケールが使用されます。
- number_to_roman($num)
- パラメータ:
**$num** (
int|string
) – 変換する数値
- 戻り値:
指定されたパラメータから変換されたローマ数字
- 戻り値の型:
string|null
数値をローマ数字に変換します
<?php echo number_to_roman(23); // Returns XXIII echo number_to_roman(324); // Returns CCCXXIV echo number_to_roman(2534); // Returns MMDXXXIV
この関数は、1 から 3999 の範囲の数値のみを処理します。この範囲外の値の場合は
null
を返します。