printf w PHP
Funkcja printf w PHP wyświetla wartości zmiennych podanych jako argumenty funkcji w odpowiednim formacie.
Składnia
printf(string $format [, $wartosc-1[, ... wartosc-N]]: int)
Parametry
Parametr | Opis |
$format | Format w postaci: %[znak]['wypełnienie][-][długość][.precyzja]kod
|
Kody formatujące
Kod | Opis |
---|---|
% | znak % pozwala wyświetlić znak procentu |
b | typ całkowity w postaci binarnej |
c | typ całkowity w kodzie ASCII |
d | typ całkowity ze znakiem |
e | notacja wykładnicza |
E | notacja wykładnicza (naukowa) |
f | typ rzeczywisty z ustawieniami narodowymi |
F | typ rzeczywisty bez ustawień narodowych |
o | typ całkowity w postaci ósemkowej |
s | typ łańcuchowy (string) |
u | typ całkowity jako liczba dziesiętna bez znaku |
x | typ całkowity w postaci szesnastkowej z małymi literami od a do f |
X | typ całkowity w postaci szesnastkowej z wielkimi literami A-F |
Konstrukcja tej funkcji wydaje się skomplikowana. Czas więc na przykłady:
Przykład 1
<?php printf ("Format %%f (rzeczywisty zmiennopozycyjny) dla liczby -16 = %f <br>",-16);
printf ("Format %%X (szesnastkowy) dla liczby 255 - %X <br>",255);
printf ("Format %%d (całkowity ze znakiem) dla liczby -16 i 16 : %d i %d <br>",-16, 16);
printf ("Format %%e (wykładniczy) dla liczb:<br> 1000000 = %e <br> 0.000001 = %e<br>",1000000,0.000001); ?>
Wyjaśnienie działania skryptu.
W pierwszej linii wyświetlany jest tekst, który ujęty jest w cudzysłów, jednak w miejsce %f wstawiana jest wartość podana jako drugi argument funkcji, czyli liczba 16. Format %f oznacza wyświetlenie argumentu w postaci liczby rzeczywistej. W miejsce %f interpreter wstawia więc wartość -16.000000. Wyjaśnienia wymaga jeszcze zapis %%f. Pozwala on zignorować kolejny znak formatowania % i zwyczajnie wyświetlić znak procentu w oknie przeglądarki.
W drugiej linii używamy tylko innego znaku formatowania. W miejsce %X interpreter PHP wstawia kolejny argument funkcji, czyli liczbę 255 i wyświetla ją w postaci szesnastkowej, czyli FF.
W trzeciej linii użyliśmy dwóch znaków formatowania, pierwszego %d dla pierwszego z kolejnych argumentów (liczby -16) i drugiego %d dla ostatniego z argumentów (liczby 16). Używając kolejno znaków formatowania interpreter podstawia wartości kolejnych argumentów, formatując je odpowiednio.
W linii czwartej mamy podobny przykład, ale używamy dwa razy znaku formatowania %e, czyli zapisu wykładniczego.
Przykład 2
A oto kilka innych, bardziej skomplikowanych przykładów ujętych w różnych wierszach skryptu:
<?php printf ("Format %%'06d dla liczby 16 i 1666: <br> %'06d <br> %'06d",16,1666);
printf ("<br><br>Format %%'_-6d dla liczby 16 i 1666: <br> %'_-6d <br> %'_-6d",16,1666);
printf ("<br><br>Format %%.3f dla liczby 16.1666: %.3f",16.1666);
printf ("<br><br>Format %%X dla działania 16x16-1 w postaci szesnastkowej: %X",16*16-1);
printf("<br><br>Format %%+d dla liczby 16 = %+d", 16);
printf("<br>Format %%+d dla liczby -16 = %+d", -16); ?>
Jak działa skrypt?
W pierwszej linii użyliśmy znaku apostrofu do określenia znaku wypełnienia. Używamy zera ('0), a następnie określamy z ilu znaków ma się zakładać ciąg (6) i w formacie "d" (typ całkowity ze znakiem). Zastosowaliśmy dwa identyczne formatowania, mamy dwa argumenty, które kolejno są podstawiane pod te ciągi formatowania.
W drugiej linii zamiast zera użyliśmy znaku podkreślenia do znaku wypełnienia. Używając znaku minusa wyrównujemy ciąg znaków do lewej.
W trzeciej linii po kropce podajemy precyzję, czyli liczbę cyfr po przecinku dla liczby rzeczywistej. Zauważ, że wynik jest zaokrąglany.
W czwartej linii używamy działania jako argumentu i przedstawiamy go w postaci liczby szesnastkowej.
W piątej i szóstej linii skryptu pokazujemy w jaki sposób wyświetlać liczby ze znakami "+" i "-".
© medianauka.pl, 2021-11-01, A-4224
Data aktualizacji artykułu: 2024-06-29