Funkcja vprintf() w PHP
Przykład
Wyświetla sformatowany ciąg znaków:
<?php
$number = 9;
$str = "Beijing";
vprintf("There are 쥕lion bicycles in %s.", array($number, $str));
?>
Definicja i użycie
Funkcja vprintf() wyświetla sformatowany ciąg znaków.
W przeciwieństwie do printf(), parametry w vprintf() znajdują się w tablicy. Elementy tablicy będą wstawiane w miejsce znaków % w głównym łańcuchu. Funkcja jest wykonywana etapowo. W pierwszym znaku % wstawia się pierwszy element tablicy, w drugim znaku % wstawia się drugi element tablicy, itd.
Komentarz:Jeśli znak % jest większy arg Jeśli masz parametr, musisz użyć占位符。占位niki są umieszczane po znaku %, złożone z liczby i "\$". Zobacz przykład 2.
Wskazówka:Związane funkcje: sprintf(), printf(), vsprintf(), fprintf() i vfprintf()
Gramatyka
vprintf(format,argarray)
| Parametr | Opis |
|---|---|
| format |
Wymagane. Określa ciąg znaków oraz sposób formatowania zmiennych w nim zawartych. Możliwe wartości formatujące:
Dodatkowe wartości formatujące. Muszą być umieszczone między % i literą (np. %.2f):
Komentarz:Jeśli używasz wielu wartości formatowych, muszą być one uporządkowane zgodnie z powyższym. |
| argarray | Wymagane. Tablica z parametrami, które będą wstawione format W miejscu znaku % w ciągu. |
Szczegółowe informacje techniczne
| Wartość zwracana: | Zwraca długość wyjściowego ciągu. |
| Wersja PHP: | 4.1.0+ |
Więcej przykładów
Przykład 1
Używaj formatu %f:
<?php
$num1 = 123;
$num2 = 456;
vprintf("%f%f",array($num1,$num2));
?>
Przykład 2
Używaj占位符:
<?php
$number = 123;
vprintf("Z dwoma miejscami po przecinku:%1\$.2f<br>Bez miejsc po przecinku:%1\$u",array($number));
?>
Przykład 3
Używaj printf() do pokazania wszystkich możliwych wartości formatowych:
<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Znak ASCII 50 to 2
// Komentarz: Wartość formatowa "%%" zwraca procent
printf("%%b = %b <br>",$num1); // Liczba binarna
printf("%%c = %c <br>",$char); // Znak ASCII
printf("%%d = %d <br>",$num1); // Dziesiętna z znakiem
printf("%%d = %d <br>",$num2); // Dziesiętna z znakiem
printf("%%e = %e <br>",$num1); // Liczba naukowa (mała litera)
printf("%%E = %E <br>",$num1); // Liczba naukowa (wielka litera)
printf("%鑾u <br>",$num1); // Dziesiętna bez znaku (dodatnia)
printf("%鑾u <br>",$num2); // Dziesiętna bez znaku (ujemna)
printf("%%f = %f <br>",$num1); // Liczba zmiennoprzecinkowa (uwzględnia ustawienia lokalne)
printf("%%F = %F <br>",$num1); // Liczba zmiennoprzecinkowa (nie uwzględnia ustawień lokalnych)
printf("%%g = %g <br>",$num1); // Krótszy niż %e i %f
printf("%%G = %G <br>",$num1); // Krótszy niż %E i %f
printf("%%o = %o <br>",$num1); // Liczba ósemkowa
printf("%%s = %s <br>",$num1); // Ciąg znaków
printf("%%x = %x <br>",$num1); // Liczba szesnastkowa (małe litery)
printf("%%X = %X <br>",$num1); // Liczba szesnastkowa (wielkie litery)
printf("%%+d = %+d <br>",$num1); // Opis znacznika symbolu (dodatni)
printf("%%+d = %+d <br>",$num2); // Opis znacznika symbolu (ujemny)
?>
Przykład 4
Przykład demonstracji znacznika łańcucha znaków:
<?php
$str1 = "Hello";
$str2 = "Hello world!";
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));
?>

