String keluaran yang diformat:
<?php$number = 9;$str = "Beijing";vprintf("Ada %u juta sepeda di %s.",array($number,$str));?>Fungsi vprintf() menghasilkan string yang diformat.
Berbeda dengan printf(), argumen dalam vprintf() berada dalam array. Elemen array akan disisipkan ke dalam string utama pada tanda persen (%). Fungsi ini dijalankan selangkah demi selangkah. Pada tanda % pertama disisipkan elemen array pertama, pada tanda % kedua disisipkan elemen array kedua, dan seterusnya.
Catatan: Jika ada lebih banyak simbol % daripada parameter arg, Anda harus menggunakan placeholder. Placeholder disisipkan setelah simbol % dan terdiri dari angka dan "$". Lihat Contoh 2.
Tip: Fungsi terkait: sprintf(), printf(), vsprintf(), fprintf(), dan vfprintf()
vprintf( format,argarray )
parameter | menggambarkan |
---|---|
format | Diperlukan. Menentukan string dan cara memformat variabel di dalamnya. Nilai format yang mungkin: %% - mengembalikan tanda persen % %b - bilangan biner %c - karakter yang sesuai dengan nilai ASCII %d - Angka desimal dengan tanda (negatif, 0, positif) %e - Gunakan notasi ilmiah huruf kecil (misalnya 1.2e+2) %E - Gunakan notasi ilmiah huruf besar (misalnya 1.2E+2) %u - Angka desimal tanpa tanda (lebih besar atau sama dengan 0) %f - angka floating point (pengaturan lokal) %F - angka floating point (pengaturan non-asli) %g - versi pendek dari %e dan %f %G - lebih pendek %E dan %f %o - bilangan oktal %s - rangkaian %x - Angka heksadesimal (huruf kecil) %X - angka heksadesimal (huruf besar) Nilai format tambahan. Harus ditempatkan di antara % dan huruf (misalnya %.2f): + (Tambahkan + atau - di depan angka untuk menentukan tanda angka. Secara default, hanya angka negatif yang ditandai, dan angka positif tidak ditandai) ' (Menentukan apa yang akan digunakan sebagai padding, defaultnya adalah spasi. Ini harus digunakan dengan penentu lebar. Misalnya: %'x20s (gunakan "x" sebagai padding)) - (nilai variabel penyesuaian kiri) [0-9] (menentukan lebar minimum nilai variabel) .[0-9] (menentukan jumlah tempat desimal atau panjang string maksimum) Catatan: Jika beberapa nilai format di atas digunakan, nilai tersebut harus digunakan sesuai urutan di atas dan tidak boleh diganggu. |
Argarray | Diperlukan. Array dengan parameter yang akan dimasukkan ke dalam string format pada simbol %. |
Nilai pengembalian: | Mengembalikan panjang string keluaran. |
---|---|
Versi PHP: | 4.1.0+ |
Gunakan nilai format %f:
<?php$angka1 = 123;$angka2 = 456;vprintf("%f%f",array($angka1,$angka2));?>Gunakan placeholder:
<?php$number = 123;vprintf("Dengan 2 desimal: %1$.2f<br>Tanpa desimal: %1$u",array($number));?>Gunakan printf() untuk mendemonstrasikan semua kemungkinan nilai format:
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // Karakter ASCII 50 adalah 2// Catatan: Nilai format "%%" mengembalikan persen signprintf("%%b = %b <br>",$num1); // Bilangan binerprintf("%%c = %c <br>",$char); // ASCII Characterprintf("%%d = %d <br>",$num1); // Angka desimal bertandaprintf("%%d = %d <br>",$num2); = %e <br>",$num1); // Notasi ilmiah (huruf kecil)printf("%%E = %E <br>",$num1); // Notasi ilmiah (huruf besar)printf("%%u = %u <br>",$num1); // Bilangan desimal tidak bertanda (positif)printf("%%u = %u <br>",$num2); bilangan desimal (negatif)printf("%%f = %f <br>",$num1); // Bilangan titik-mengambang (pengaturan lokal diketahui)printf("%%F = %F <br>",$num1); // Angka floating-point (tidak mengetahui pengaturan lokal)printf("%%g = %g <br>",$num1); // Lebih pendek dari %e dan %fprintf(" %%G = %G <br>",$num1); // Lebih pendek dari %E dan %fprintf("%%o = %o <br>",$num1); // Bilangan oktalprintf("%%s = %s <br>",$num1); // Stringprintf("%%x = %x <br>",$num1); // Bilangan heksadesimal (huruf kecil)printf("%%X = %X <br >",$angka1); // Bilangan heksadesimal (huruf besar)printf("%%+d = %+d <br>",$angka1); // Penentu tanda (positif)printf("%%+d = %+d <br>",$num2); // Penentu tanda (negatif)?>Demonstrasi penentu string:
<?php$str1 = "Halo";$str2 = "Halo dunia!";vprintf("[%s]<br>",array($str1));vprintf("[%8s]<br>",array($str1));vprintf("[%-8s] <br>",array($str1));vprintf("[%08s]<br>",array($str1)); vprintf("[%'*8s]<br>",array($str1));vprintf("[%8.8s]<br>",array($str2) ?>