PHP

Fungsi String sprintf() Pada PHP

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

ParameterDeskripsi
formatRequired. 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.
arg1Required. Argumen yang akan disisipkan di% -sign pertama dalam format string
arg2Optional. 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]

Hanifah Nurbaeti