دالة money_format() في PHP

مثال

تنسيق en_US الدولي:

<?php
$number = 1234.56;
setlocale(LC_MONETARY,"en_US");
echo money_format("The price is %i", $number);
?>

以上代码的输出:

The price is USD 1,234.56

التعريف والاستخدام

تقوم دالة money_format() بإرجاع نص تم تنسيقه كنص عملة.

تضيف هذه الدالة رقماً منسقاً في مكان النسبة المئوية (%) في النص الرئيسي.

注释:لا يمكن استخدام دالة money_format() على منصة Windows.

نصائح:يستخدم هذا الدالة عادةً مع setlocale() استخدام الدوال معًا.

نصائح:للإطلاع على جميع رموز اللغات المتاحة، يرجى زيارةدليل رموز اللغات

النحو

money_format(string,number)
المتغيرات وصف
string

مطلوب. تحديد النص الذي سيتم تنسيقه وكيفية تنسيق المتغيرات فيه.

قيم التنسيق الممكنة:

ملء والعلامات:

  • =f - تحديد الحرف (f) كملء (مثلاً: %=t يستخدم "t" كملء). الافتراض هو استخدام الفراغ كملء.
  • ^ - إزالة استخدام حرف التفرع.
  • + أو ( - تحديد كيفية عرض الإيجابيات والسالبيات. إذا تم استخدام "+"، يتم استخدام علامات الإيجابية والسالبية المحددة في الإعدادات المحلية (عادةً يتم وضع علامة في بداية السالبية، وليس في بداية الإيجابية). إذا تم استخدام "("، يتم وضع السالبية بين الأقواس. الافتراض هو استخدام "+".
  • ! - وقف استخدام رمز العملة في الناتج.
  • - إذا تم استخدام "-"، يتم توجيه جميع العناصر إلى اليسار. الافتراض هو التوجيه إلى اليمين.

عرض العنصر:

  • x - تحديد الأوسع للعنصر (x). الافتراض هو 0.
  • #x - تحديد عدد الأرقام الأكبر للعدد من اليسار (x). يستخدم للحفاظ على تنسيق الخروج في نفس الصف العمودي. إذا كان عدد الأرقام أكبر من x، يتم تجاهل هذا التحديد.
  • .x - 规定小数点右边数字的最大位数(x)。如果 x 是 0,小数点及其右边的数字将不会显示。默认使用本地设置。

转换字符:

  • i - 数字被格式化为国际货币格式。
  • n - 数字被格式化为国家货币格式。
  • % - 返回 % 字符。

注释:如果使用多个格式值,则它们必须以上面的顺序出现。

注释:该函数受本地设置的影响。

number 必需。被插入到格式化字符串中 % 符号位置的数字。

技术细节

返回值:

返回已格式化的字符串。

格式化字符串前后的字符将保持不变返回。非数值数字会返回 NULL 并产生 E_WARNING。

PHP 版本: 4.3.0+

更多实例

例子 1

带 2 个小数的国际格式(德国):

<?php
$number = 1234.56;
setlocale(LC_MONETARY,"de_DE");
echo money_format("%.2n", $number);
?>

以上代码的输出:

1 234,56 EUR

例子 2

负数,带有 () 指示负数的 US 国际格式,右侧精度为 2,并且 "*" 为填充字符:

<?php
$number = -1234.5672;
echo money_format("%=*(#10.2n",$number);
?>

以上代码的输出:

(******1234.57)