<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤဆောင်းပါးသည်သရုပ်ပြကုဒ်သင်္ကေတအတွက်သာဖြစ်သည်,စာသား၏အကြောင်းအရာနှင့်အတူလုပ်ဖို့ဘာမှမရှိဘူး。</span></span><span>
</span><span><span class="hljs-comment">// ၎င်းကိုအသုံးပြုသောအခါအမှန်တကယ်အခြေအနေအရ၎င်းကိုချိန်ညှိပါ。</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-string">'en_US.UTF-8'</span></span><span>);
</span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-number">1234567.89</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
---
</span><span><span class="hljs-comment"># ဘယ်လိုမှန်ကန်စွာအသုံးပြုရမလဲPHP၏money_formatလုပ်ဆောင်ချက်များနှင့်setlocaleဒေသတွင်းငွေကြေးပုံစံများကိုကိုင်တွယ်ရန် coupled?</span></span><span>
在涉及金融或电商类应用၏开发中,货币格式化是一个常见၏需求。PHP 中၏ `money_format` အလုပ်လုပ်တဲ့ညှိနှိုင်းမှု `setlocale` 可以帮助开发者根据不同၏地区设置,输出符合本地习惯၏货币字符串。မည်မှျပင်,ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသုံးပြုသောအခါအစပြုသူများသည်ရှုပ်ထွေးမှုများအချို့ကိုကြုံတွေ့ရလေ့ရှိသည်。ဤဆောင်းပါးသည်မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြရန်နှင့်ကြိုတင်ကာကွယ်မှုများပြုလုပ်နိုင်သည်。
</span><span><span class="hljs-comment">## 1. အခြေခံစည်းမျဉ်းများ</span></span><span>
- **`setlocale`**
用来设定程序၏区域信息(Locale),သွဇာလွှမ်းမိုးမှုနံပါတ်များ、နေ့စဲှ、ငွေကြေးနှင့်အခြား format ကိုစည်းမျဉ်းစည်းကမ်းများ。
常见၏设置方式为:
```php
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-string">'en_US.UTF-8'</span></span><span>);
</span></span>အထက်ပါကုဒ်သည် US English ကို အသုံးပြု. ငွေကြေးပုံစံ (UTF-8 encoding) ကိုဆိုလိုသည်။
Money_format
လက်ရှိဒေသအလိုက်အရငွေကြေးတန်ဖိုးကို format လုပ်လေ့ရှိသည်။
ဥပမာအားဖြင့်:
<span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-number">1234.56</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span></span>US Locale အောက်တွင်၎င်းသည် Output ကို USD 1234.56 ။
Money_Format ၏ပထမဆုံး pareter သည် format control string ကိုဖြစ်သည်။ သာမန်လူများမှာ -
% i : ဒေသအလိုက်အရအပြည်ပြည်ဆိုင်ရာအပြည်ပြည်ဆိုင်ရာ formatice ငွေကြေး (ငွေကြေးသင်္ကေတများအပါအ 0 င်) output ကိုပြောင်းလဲခြင်း။
% n : ဒေသတွင်းအရရလဒ်များအနေဖြင့်ရလဒ်အနေဖြင့် National Formal Format
% !! N : ငွေကြေးသင်္ကေတများကိုတားမြစ်သည်။
ဥပမာ -
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%n'</span></span><span>, </span><span><span class="hljs-number">1234.56</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-number">1234.56</span></span><span>);
</span></span>အဘယ်အရာကိုသတိပြုသင့်သည် -
Money_Format ကို Windows ပလက်ဖောင်းများတွင်မရနိုင်ပါ ။ ၎င်းသည်အဓိကအားဖြင့် Unix ကဲ့သို့သောစနစ်များ (Linux, Macos) တွင်ထိရောက်မှုရှိသည်။
Windows (သို့) နောက်ပိုင်းတွင် PHP ဗားရှင်းများတွင် နံပါတ် (IntL Extension) ကိုသုံးရန်အသုံးပြုရန်အကြံပြုသည်။
ဥပမာအားဖြင့်:
<span><span><span class="hljs-variable">$fmt</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">NumberFormatter</span></span><span>(</span><span><span class="hljs-string">'en_US'</span></span><span>, </span><span><span class="hljs-title class_">NumberFormatter</span></span><span>::</span><span><span class="hljs-variable constant_">CURRENCY</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$fmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">formatCurrency</span></span><span>(</span><span><span class="hljs-number">1234.56</span></span><span>, </span><span><span class="hljs-string">'USD'</span></span><span>);
</span></span>သင်သည်အပြည်ပြည်ဆိုင်ရာ e-commerce စနစ်ဖွံ့ဖြိုးဆဲဖြစ်ပြီးသုံးစွဲသူ၏နိုင်ငံ၏အဆိုအရမတူညီသောငွေကြေးပြသမှုနည်းလမ်းများတင်ပို့ရန်လိုအပ်သည်ဆိုပါစို့။
<span><span><span class="hljs-variable">$locale</span></span><span> = </span><span><span class="hljs-string">'fr_FR.UTF-8'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_MONETARY, </span><span><span class="hljs-variable">$locale</span></span><span>);
</span><span><span class="hljs-variable">$amount</span></span><span> = </span><span><span class="hljs-number">987654.32</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">money_format</span></span><span>(</span><span><span class="hljs-string">'%i'</span></span><span>, </span><span><span class="hljs-variable">$amount</span></span><span>);
</span></span>output သည်: 987 654,32 EUR (ပြင်သစ်ထုံးစံ) ဖြစ်နိုင်သည်။
ငွေကြေး၏ဒေသဆိုင်ရာစည်းမျဉ်းများကိုထိန်းချုပ်ရန် Setlocale ကို သုံးပါ။
UNIX ကဲ့သို့သောပတ်ဝန်းကျင်တွင်သင်သည်ငွေကြေးဆိုင်ရာငွေကြေးများကိုလျင်မြန်စွာထုတ်လွှင့်ရန်အတွက် money_format ကို တိုက်ရိုက်သုံးနိုင်သည်။
Windows (သို့) Cross-platform ပတ် 0 န်းကျင်တွင် Intl extension ကိုအသုံးပြုရန်အတွက် ဖုန်းနံပါတ်ကို အသုံးပြုရန်အကြံပြုသည်။
ဖွံ့ဖြိုးရေးစဉ်အတွင်းဒေသ၏ပျက်ကွက်မှုကြောင့် function ၏ပျက်ကွက်မှုကိုရှောင်ရှားရန်ပစ်မှတ်ပလက်ဖောင်း၏ဒေသဆိုင်ရာချိန်ညှိချက်များကိုရှင်းလင်းရန်အရေးကြီးသည်။
Money_Format နှင့် Setlocale ကို မှန်ကန်စွာကိုက်ညီခြင်းဖြင့်ကွဲပြားခြားနားသောဒေသများရှိ application ၏အသုံးပြုသူအတွေ့အကြုံကိုသိသိသာသာတိုးတက်အောင်လုပ်နိုင်သည်။