(PHP 4 >= 4.3.0, PHP 5)
money_format — Bir sayıyı para olarak biçemler
$biçem
, float $sayı
)
money_format() işlevi belirtilen
sayı
'nın para olarak biçemlenmiş sürümünü döndürür.
Bu gerçeklenimin bir defada sadece bir sayıyı dönüştürmesi dışında C
kütüphanesinin strfmon() işlevinin yaptığını yapar.
biçem
Biçem belirtimleri şu dizilimlerden oluşur:
% karakteri
seçimlik seçenekler
seçimlik alan genişlikleri
seçimlik sol taraf hassasiyeti
seçimlik sağ taraf hassasiyeti
gerekli bir dönüşüm karakteri
Aşağıdaki seçeneklerden bir veya daha fazlası kullanılabilir:
= iminden sonra gelen bir tek baytlık karakter sayısal dolgu karakteri olarak kullanılır. Boşluk, öntanımlı dolgu karakteridir.
Geçerli yerelde tanımlı binlik ayracını iptal eder.
Pozitif ve negatif sayılar için biçemleme tarzını belirler. + kullanılmışsa + ve - için yereldeki eşdeğeri kullanılır. ( kullanılmışsa negatif miktarlar yaylı ayraç içine alınır. Hiçbir şey belirtilmemişse + öntanımlıdır.
Çıktı dizgesinde para biriminin bulunmamasını sağlar.
Belirtilmesi halinde bütün alanlar sola yanaştırılır (sağ tarafa dolgu yapılır). Belirtilmemesi halinde (öntanımlı durum) alanlar sağa yanaştırılır (sol tarafa dolgu yapılır).
En küçük alan genişliğini belirten onluk bir rakam. - seçeneği belirtilmedikçe alan sağa yanaştırılır. Öntanımlı değer sıfırdır (0).
Ondalık ayracın sol tarafındaki hanelerin azami sayısı (n). Normalde sayıları aynı sütun genişliğinde alt alta dizerken belirtilenden daha az genişliğe sahip sayılarda dolgu yapılması için kullanılır. Burada belirtilenden daha geniş sayılara bu belirtim uygulanmaz.
^ seçeneği ile binlik gruplama engellenmemişse eklenen (varsa) dolgu karakterlerinin öncesine binlik ayracı yerleştirilir. Binlik ayracı dolgu karakterlerine, 0 bile olsalar uygulanmaz.
Hizalamak amacıyla pozitif ve negatif biçemlerin genişliklerini eşitlemek için gerekirse, biçemli çıktıdaki sayıdan önceki veya sonraki herhangi bir karaktere kadar (para birimi veya işaret simgesi) boşluk karakteri doldurulur.
Ondalık ayracın sağındaki hane sayısı (p). Eğer p 0 (sıfır) ise, ondalık ayraç ve sağındaki rakamlar yoksayılır. Sağ taraf hassasiyeti olarak hiçbir şey belirtilmemişse geçerli yereldeki kullanılır. Belirtilen genişlikten daha fazla sayıda hane varsa bu haneler biçemleme öncesi yuvarlatılır.
Sayı yerelin uluslararası para birimine göre biçemlenir (örn, en_US yereli için: USD 1,234.56).
Sayı yerelin ulusal para birimine göre biçemlenir (örn, de_DE yereli için: DM1.234,56).
% karakteri döner.
sayı
Biçemlenecek sayı.
Biçemlenmiş dizge döner. Biçemlenen sayının önündeki veya ardındaki
karakterler değişmeden döner. sayı
bir sayısal değer
değilse işlev NULL
döndürür ve bir E_WARNING
çıktılar.
Bilginize:
money_format() işlevi sadece sistem strfmon yeteneklerine sahipse tanımlıdır. Örneğin Windows'ta money_format() kullanılamaz.
Bilginize:
Yerelin
LC_MONETARY
sınıfı bu işlevin davranışını etkiler. Bu bakımdan bu işlevi kullanmadan önce uygun bir yereli öntanımlı yerel yapmak için setlocale() işlevini kullanın.
Örnek 1 - money_format() örneği
Bu işlevin neler yapabileceğini göstermek için farklı yereller kullanacağız.
<?php
$number = 1234.56;
// Amerikan yereli için uluslararası biçemi kullanalım
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56
// 2 ondalık haneli İtalyan ulusal biçemi
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// L. 1.234,56
// Negatif sayı kullanımı
$number = -1234.5672;
// Negatif sayılar için () ve sol tarafı 10 hanelik
// Amerikan ulusal biçemi
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($ 1,234.57)
// Yukarıdaki biçeme ek olarak sağ taraf için 2 hane
// ve dolgu karakteri olarak '*' kullanımı;
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)
// Sola hizalı, 14 hane genişlikte, sol taraf hassasiyeti olarak 8,
// sağ taraf hassasiyeti olarak 2 hanelik, binlik ayracı kullanmaksızın
// Alman yereli için uluslararası biçemi kullanarak sayıyı biçemleyelim
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// DEM 1234,56****
// Dönüşüm belirtiminin önüne ve ardına bir şeyler ekleyelim
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'Son fiyat %i olur (%%10 indirim sonrası)';
echo money_format($fmt, 1234.56) . "\n";
// Son fiyat GBP 1,234.56 olur (%10 indirim sonrası)
?>