Definisi dan Penggunaan
Fungsi sprintf()
digunakan untuk dapat menulis string yang diformat ke variabel.
Parameter arg1, arg2, ++ akan disisipkan pada tanda persen (%) di string utama. Fungsi ini bekerja “selangkah demi selangkah”. Pada tanda% pertama, arg1 dimasukkan, pada tanda% kedua, arg2 dimasukkan, dll.
Catatan: Jika ada lebih tanda% daripada argumen, maka harus menggunakan placeholder. Placeholder disisipkan setelah tanda% dan terdiri dari nomor argumen dan “\$”. Lihat contoh dua.
Tip: Fungsi terkait: printf (), vprintf (), vsprintf (), fprintf ()
dan vfprintf ()
Syntax
sprintf(format,arg1,arg2,arg++)
Nilai Parameter
Parameter | Deskripsi |
---|---|
format | Required. Menentukan string dan cara memformat variabel di dalamnya. Nilai format yang memungkinkan: %% – Mengembalikan tanda persen %b – Bilangan biner %c – Karakter sesuai dengan nilai ASCII %d – Angka desimal bertanda tangan (negatif, nol atau positif) %e – Notasi ilmiah menggunakan huruf kecil (misalnya 1.2e + 2) %E – Notasi ilmiah menggunakan huruf besar (misalnya 1.2E + 2) %u – Angka desimal tak bertanda (sama dengan atau lebih besar dari nol) %f – Angka floating-point (pengaturan lokal sadar) %F – Angka floating-point (tidak diketahui pengaturan lokal) %g – lebih pendek dari% e dan% f %G – lebih pendek dari% E dan% f %o – Nomor oktal %s – String %x – Angka heksadesimal (huruf kecil) %X – Angka heksadesimal (huruf besar) Nilai format tambahan. Ini ditempatkan di antara% dan huruf (contoh% .2f): +(Memaksa + dan – di depan angka. Secara default, hanya angka negatif yang ditandai) ‘(Menentukan apa yang akan digunakan sebagai pengisi. Defaultnya adalah spasi. Harus digunakan bersama dengan penentu lebar. Contoh:%’ x20s (ini menggunakan “x” sebagai pengisi) –(Kiri-membenarkan nilai variabel) [0-9] (Menentukan lebar minimum yang dipegang dari nilai variabel) . [0-9] (Menentukan jumlah digit desimal atau panjang string maksimum) Catatan: Jika beberapa nilai format tambahan digunakan, urutannya harus sama seperti di atas. |
arg1 | Required. Argumen yang akan disisipkan di% -sign pertama dalam format string |
arg2 | Optional. Argumen yang akan disisipkan di% -sign kedua dalam format string |
arg++ | Optional. Argumen yang akan disisipkan di ketiga, keempat, dll.% -Sign dalam format string |
Detail Teknis
Return Value: | Mengembalikan string yang telah diformat |
---|---|
PHP Version: | 4+ |
Contoh 1
Ganti tanda persen (%) dengan variabel yang diteruskan sebagai argumen:
<?php $number = 9; $str = "Taiwan"; $txt = sprintf("Ada %u juta sepeda di %s.",$number,$str); echo $txt; ?> /*Output : Ada 9 juta sepeda di Taiwan.
Contoh 2
Menggunakan nilai format% f:
<?php $number = 123; $txt = sprintf("%f",$number); echo $txt; ?> /* Output : 123.000000
Contoh 3
Penggunaan placeholder:
<?php $number = 123; $txt = sprintf("Dengan 2 desimal: %1\$.2f <br>Tanpa desimal: %1\$u",$number); echo $txt; ?> /* Output : Dengan 2 desimal : 123.00 Tanpa desimal: 123
Contoh 4
Demonstrasi semua nilai format yang mungkin:
<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // Karakter ASCII 50 adalah 2 // Note: Nilai format "%%" mengembalikan tanda persen sprintf("%%b = %b <br>",$num1); // Binary number sprintf("%%c = %c <br>",$char); // The ASCII Character sprintf("%%d = %d <br>",$num1); // Angka desimal bertanda tangan sprintf("%%d = %d <br>",$num2); // Angka desimal bertanda tangan sprintf("%%e = %e <br>",$num1); // Notasi ilmiah (lowercase) sprintf("%%E = %E <br>",$num1); // Notasi ilmiah (uppercase) sprintf("%%u = %u <br>",$num1); // Angka desimal tak bertanda tanganr (positive) sprintf("%%u = %u <br>",$num2); // Angka desimal tak bertanda tangan (negative) sprintf("%%f = %f <br>",$num1); // Angka floating-point (local settings aware) sprintf("%%F = %F <br>",$num1); // Angka floating-point (not local settings aware) sprintf("%%g = %g <br>",$num1); // Lebih pendek dari %e dan %f sprintf("%%G = %G <br>",$num1); // Lebih pendek dari %E dan %f sprintf("%%o = %o <br>",$num1); // Octal number sprintf("%%s = %s <br>",$num1); // String sprintf("%%x = %x <br>",$num1); // Bilangan heksadesimal (lowercase) sprintf("%%X = %X <br>",$num1); // Bilangan heksadesimal (uppercase) sprintf("%%+d = %+d <br>",$num1); // Sign specifier (positive) sprintf("%%+d = %+d <br>",$num2); // Sign specifier (negative) ?> /*Output : %b = 111010110111100110100010101 %c = 2 %d = 123456789 %d = -123456789 %e = 1.234568e+8 %E = 1.234568E+8 %u = 123456789 %u = 18446744073586094827 %f = 123456789.000000 %F = 123456789.000000 %g = 1.23457e+8 %G = 1.23457E+8 %o = 726746425 %s = 123456789 %x = 75bcd15 %X = 75BCD15 %+d = +123456789 %+d = -123456789
Contoh 5
Demonstrasi penentu string:
<?php $str1 = "Hello"; $str2 = "Hello world!"; sprintf("[%s]<br>",$str1); // String sprintf("[%8s]<br>",$str1); // Membenarkan string dengan spasi sprintf("[%-8s]<br>",$str1); // Membenarkan nilai string dengan spasi sprintf("[%08s]<br>",$str1); // Zero-padding sprintf("[%'*8s]<br>",$str1); // Menambahkan "*" sprintf("[%8.8s]<br>",$str2); // Membenarkan string dengan spasi (memotong karakter setelah nilai yang ditentukan) ?> /*Output : [Hello] [ Hello] [Hello ] [000Hello] [***Hello] [Hello wo]