PrintF
Vypíše zformátovaný řetězec.
void PrintF (string formát řetězce [, mixed
argumenty])
Tato funkce vytvoří řetězec podle zadaných pokynů.
Formátovací řetězec obsahuje nula nebo více formátovacích pokynů. Všechny znaky, kromě % a znaků následujících za ním jsou přímo kopírovány do výsledného řetězce. Pokud je v řetěci posloupnost znaků začínající symbolem %, jsou znaky za ním nahrazeny zformátovanými argumenty.
Každé formátovácí pravidlo začíná symbolem %, který je následován minimálně jedním z následujících prvků v pořadí:
- Volitelný parametr, určující počet znaků použitých pro doplnění výsledku zprava. Zde můžeme použít 0 nebo mezeru. Jako výchozí hodnota se bere mezera. Lze použít i jiné symboly, ale musí být uvozeny apostrofem (').
- Volitelný argument, který říká, jestli má být výsledek zarovnán vpravo nebo vlevo. Výchozí hodnota zarovnání je doprava. Pokud chceme mít výsledek zarovnaný doleva, musíme použít znak minus '-'.
- Volitelný parametr určiující počet desetinných míst, které se vypíší. Tento parametr má smysl jen u proměnné typu float.
- Poslední argument je povinný. Označuje typ formátovaných dat. Máme na výběr z deseti možností:
% Vypíše znak procenta. Nevyžaduje zadávání argumentů. b argument je vyhodnocen jako integer, a vypsán jako binární číslo c argument je vyhodnocen jako integer, a vypsán jako znak s odpovídajícím ASCII kódem d argument je vyhodnocen jako integer, a vypsán jako desítkové číslo (se znaménkem) u argument je vyhodnocen jako integer, a vypsán jako desítkové číslo (bez znaménka) f argument je vyhodnocen jako float, a vypsán jako číslo s pohyblivou desetinnou čárkou o argument je vyhodnocen jako integer, a vypsán jako číslo v osmičkové soustavě s argument je vyhodnocen a zobrazen jako řetězec x argument je vyhodnocen jako integer, a vypsán jako hecadecimální číslo (s malými písmeny) X argument je vyhodnocen jako integer, a vypsán jako hecadecimální číslo (s velkými písmeny)
Příklady použití
Formátování desetinných čísel
$cislo1 = 12.34;
$cislo2 = 24.26;
$sum = $cislo1 + $cislo2; // echo $sum vypíše 36.6
PrintF ("Součet čísel je %01.2f", $sum); // vypíše 36.60
$cislo2 = 24.26;
$sum = $cislo1 + $cislo2; // echo $sum vypíše 36.6
PrintF ("Součet čísel je %01.2f", $sum); // vypíše 36.60
Převod do osmičkové (octalové) soustavy
$cislo = 25;
PrintF ("Číslo %d převedené do osmičkové soustavy je %o", $cislo, $cislo); // Číslo 25 převedené do osmičkové soustavy je 31
PrintF ("Číslo %d převedené do osmičkové soustavy je %o", $cislo, $cislo); // Číslo 25 převedené do osmičkové soustavy je 31
Převod do hexadecimální soustavy
$cislo = 28;
PrintF ("Číslo %d převedené do hexadecimální soustavy je %x", $cislo, $cislo); // Číslo 28 převedené do hexadecimální soustavy je 1c
PrintF ("Číslo %d převedené do hexadecimální soustavy je %X", $cislo, $cislo); // Číslo 28 převedené do hexadecimální soustavy je 1C
PrintF ("Číslo %d převedené do hexadecimální soustavy je %x", $cislo, $cislo); // Číslo 28 převedené do hexadecimální soustavy je 1c
PrintF ("Číslo %d převedené do hexadecimální soustavy je %X", $cislo, $cislo); // Číslo 28 převedené do hexadecimální soustavy je 1C
Přesun argumentů
Pokud připravujete vícejazyčnou aplikaci, tak se pravděpodobně setkáte s tím, že díky odlišnému slovosledu je nutné změnit pořadí argumentů. Od PHP verze 4.0.6 je možné měnit pořadí vypisování argumentů.
Česká verze:
$location = 'stromě';
$num = 5;
PrintF ("Na %s je %d opic.", $location, $num); // Na stromě je 5 opic.
$num = 5;
PrintF ("Na %s je %d opic.", $location, $num); // Na stromě je 5 opic.
Anglická verze:
$location = 'tree';
$num = 5;
PrintF ("There are %2\$d monkeys in the %1\$s.", $location, $num); // There are 5 monkeys in the tree.
$num = 5;
PrintF ("There are %2\$d monkeys in the %1\$s.", $location, $num); // There are 5 monkeys in the tree.
Odkazy
- Funkce Number_Format() další velmi užitečná funkce na formátování čísel
- Funkce PrintF() na http://www.php.net/