Php printf-voorbeelden. Sprintf - Retourneert een opgemaakte tekenreeks

(PHP4, PHP5, PHP7)

sprintf — Retourneert een opgemaakte tekenreeks

Lijst met parameters

Een formatstring bestaat uit nul of meer richtlijnen: gewone karakters (behalve % ), die rechtstreeks naar de resulterende tekenreeks worden gekopieerd, en transformatiedescriptoren, die elk worden vervangen door een van de parameters. Dit geldt voor beide sprintf(), en naar printf().

Elke conversiespecificatie bestaat uit een procentteken ( % ), gevolgd door een of meer aanvullende elementen (in de volgorde waarin ze hier worden vermeld):

  1. Optioneel karakterbeschrijving, waarmee wordt aangegeven hoe het teken (- of +) op het nummer wordt toegepast. Standaard wordt alleen het minteken gebruikt als het getal negatief is. Deze specificatie zorgt ervoor dat positieve getallen ook een plusteken weergeven en is toegevoegd in PHP 4.3.0.
  2. Optioneel opvullingsspecificatie, waarmee wordt aangegeven welk teken wordt gebruikt om het resultaat op de vereiste lengte te brengen. Het kan een spatie zijn of 0 . De standaardwaarde is spatie. " Een alternatief teken kan worden opgegeven met behulp van een enkel aanhalingsteken (
  3. Optioneel ). Zie voorbeelden hieronder. - uitlijningsdescriptor
  4. , waarmee de linker- of rechteruitlijning wordt opgegeven. Standaard is het rechts uitgelijnd, gebruikt voor links uitlijnen. Optioneel nummer
  5. Optioneel breedte specificatie, dat het minimumaantal tekens specificeert dat het resultaat van deze conversie zal bevatten.
  6. precisie-descriptor, gespecificeerd als een punt (".") gevolgd door een optionele decimale tekenreeks die specificeert hoeveel decimalen moeten worden weergegeven voor getallen met drijvende komma. Bij gebruik met tekenreeksen fungeert deze specificatie als snijpunt dat de maximale tekenlimiet instelt. U kunt ook het symbool opgeven dat wordt gebruikt om het getal tussen de punt en het getal aan te vullen.

    • % Typespecificatie
    • , die specificeert hoe het gegevenstype van het argument moet worden behandeld. Geldige typen:- percentagesymbool. Het argument wordt niet gebruikt.
    • B- het argument wordt behandeld als een geheel getal en uitgevoerd als een binair getal.
    • C- het argument wordt behandeld als een geheel getal en uitgevoerd als een teken met de bijbehorende ASCII-code.
    • D- het argument wordt geïnterpreteerd als een getal in de wetenschappelijke notatie (bijvoorbeeld 1.2e+2).
    • De precisiespecificatie geeft het aantal decimalen aan sinds PHP 5.2.1. In eerdere versies werd het aantal significante cijfers aangegeven (één teken minder). E - vergelijkbaar% e
    • , maar gebruikt een hoofdletter (bijvoorbeeld 1.2E+2). F
    • - het argument wordt behandeld als een getal met drijvende komma en wordt ook uitgevoerd, afhankelijk van de landinstelling. F
    • - het argument wordt behandeld als een getal met drijvende komma en wordt ook uitgevoerd, maar zonder afhankelijk van de landinstelling. - vergelijkbaar Beschikbaar vanaf PHP 4.3.10 en PHP 5.0.3. G.
    • En%F G Beschikbaar vanaf PHP 4.3.10 en PHP 5.0.3. G.
    • - selecteert de kortste invoer uit% E
    • O- het argument wordt behandeld als een geheel getal en uitgevoerd als een octaal getal.
    • S- het argument wordt behandeld als een string.
    • u- het argument wordt behandeld als een geheel getal en wordt uitgevoerd als een decimaal getal zonder teken.
    • X- het argument wordt behandeld als een geheel getal en uitgevoerd als een hexadecimaal getal (kleine letters).

X

- het argument wordt behandeld als een geheel getal en uitgevoerd als een hexadecimaal getal (in hoofdletters).
De variabelen worden geconverteerd naar het juiste type voor de specificatie: Typebehandeling
Type O
Specificator C, S, B, - selecteert de kortste invoer uit, u, X, , die specificeert hoe het gegevenstype van het argument moet worden behandeld. Geldige typen:
snaar - het argument wordt behandeld als een getal met drijvende komma en wordt ook uitgevoerd, maar zonder afhankelijk van de landinstelling., En, D, De precisiespecificatie geeft het aantal decimalen aan sinds PHP 5.2.1. In eerdere versies werd het aantal significante cijfers aangegeven (één teken minder)., , maar gebruikt een hoofdletter (bijvoorbeeld 1.2E+2)., - het argument wordt behandeld als een getal met drijvende komma en wordt ook uitgevoerd, afhankelijk van de landinstelling.

geheel getal

dubbele

Aandacht

Als u probeert een combinatie van tekenreeksen en breedtespecificaties te gebruiken met coderingen die meer dan één byte per teken vereisen, kan dit onverwachte resultaten opleveren.

De formatstring ondersteunt nummering en herschikking van parameters. Bijvoorbeeld:
Voorbeeld #1 De volgorde van parameters wijzigen

$getal = 5; $locatie = "boom";;

?>

$formaat =

"%d apen zitten op %s"

Deze code levert "5 apen zittend in een boom" op. Stel je nu voor dat de formatstring in een apart bestand staat, dat vervolgens in een andere taal wordt vertaald, en we herschrijven het als volgt: Voorbeeld #2 De volgorde van parameters wijzigen;
$formaat =
?>

"Er zitten %d apen op %s"

echo sprintf ($format, $num, $location);

Deze code levert "5 apen zittend in een boom" op. Stel je nu voor dat de formatstring in een apart bestand staat, dat vervolgens in een andere taal wordt vertaald, en we herschrijven het als volgt: Er is een probleem: de volgorde van de conversiespecificaties komt niet overeen met de volgorde van de argumenten. We willen de code niet wijzigen en we moeten specificeren welk argument overeenkomt met welke conversiespecificatie.;
$formaat =
?>

Voorbeeld #3 De volgorde van parameters wijzigen

"Er zitten %1$d apen op %2$s"

Deze code levert "5 apen zittend in een boom" op. Stel je nu voor dat de formatstring in een apart bestand staat, dat vervolgens in een andere taal wordt vertaald, en we herschrijven het als volgt: Argumentnummering heeft nog een ander nut: u kunt hetzelfde argument meerdere keren afdrukken zonder extra parameters aan de functie door te geven.
Voorbeeld #4 De volgorde van parameters wijzigen
;
$formaat =
?>

"Er zitten %1$d apen op %2$s. Het is geweldig dat %2$s op %1$d apen zit." Bij het wijzigen van de volgorde van parameters positiebeschrijving % ) vóór alle andere descriptors, zoals weergegeven in het onderstaande voorbeeld.

Voorbeeld #5 Specificeren van een complementair karakter

echo sprintf ("%.9d\n" , 123 );
echo sprintf ("%".09d\n" , 123 );
?>

123 000000123

Voorbeeld nr. 6 Gebruik van de positiespecificatie en in combinatie met andere descriptoren

Deze code levert "5 apen zittend in een boom" op. Stel je nu voor dat de formatstring in een apart bestand staat, dat vervolgens in een andere taal wordt vertaald, en we herschrijven het als volgt: "Er zitten %1$04d apen op %2$s";
$formaat =
?>

Het resultaat van het uitvoeren van dit voorbeeld:

0005 apen zittend op een boom

Opmerking:

Er is geprobeerd een positiespecificatie groter dan te gebruiken PHP_INT_MAX, zorgt ervoor dat de functie een waarschuwing genereert sprintf() .

geheel getal

De B typespecificatie negeert opvulling en breedte

Waarden retourneren

Retourneert een tekenreeks die is opgemaakt volgens format .

Voorbeelden

Voorbeeld #7 sprintf(): opvulling met nullen

$n = 43951789;
$u = - 43951789 ;
$c = 65; // ASCII 65 is "A"

// merk op dat dubbel %% wordt uitgevoerd als enkele "%"
printf ("%%b = "%b"\n" , $n ); // binaire representatie
printf ("%%c = "%c"\n" , $c); // drukt een ascii-teken af, vergelijkbaar met de functie chr().
printf ("%%d = "%d"\n" , $n ); // normaal geheel getal
printf ("%%e = "%e"\n" , $n ); // wetenschappelijke notatie
printf ("%%u = "%u"\n" , $n ); // niet-ondertekende gehele representatie van een positief getal
printf ("%%u = "%u"\n" , $u); // niet-ondertekende gehele representatie van een negatief getal
printf ("%%f = "%f"\n" , $n ); // weergave van een getal met drijvende komma
printf ("%%o = "%o"\n" , $n ); // octale weergave
printf ("%%s = "%s"\n" , $n ); // lijn
printf ("%%x = "%x"\n" , $n ); // hexadecimale weergave (kleine letters)
printf ("%%X = "%X"\n" , $n ); // hexadecimale weergave (hoofdletters)

Printf ("%%+d = "%+d"\n" , $n ); // tekendescriptor met een positief geheel getal
printf ("%%+d = "%+d"\n" , $u); // tekendescriptor met een negatief geheel getal
?>

Het resultaat van het uitvoeren van dit voorbeeld:

%b = "10100111101010011010101101" %c = "A" %d = "43951789" %e = "4.39518E+7" %u = "43951789" %u = "4251015507" %f = "43951789.000000000000" %o = "24752323 255 " %s = "43951789" %x = "29ea6ad" %X = "29EA6AD" %+d = "+43951789" %+d = "-43951789"

Voorbeeld #8 printf(): tekenreeksbeschrijvingen

$s = "aap";
$t = "veel apen";

Printf("[%s]\n" , $s ); // normale lijnuitvoer
printf ("[%10s]\n" , $s ); // rechts uitlijnen met spaties
printf ("[%-10s]\n" , $s ); // links uitgelijnd met spaties
printf ("[%010s]\n" , $s ); // zero-padding werkt ook met strings
printf ("[%"#10s]\n" , $s ); // gebruik uw eigen aanvullende teken "#".
printf ("[%10.10s]\n" , $t ); // linkeruitlijning met trim van 10 tekens
?>

Met de PHP sprintf-functie kunt u een aantal argumenten converteren en in één enkele tekenreeks passen. Met opmaakspecificaties kunt u werken met tekens, tekenreeksen, gehele getallen en reële getallen.

De functie wordt gebruikt voor het opmaken van tabelgegevens en het maken van sjablonen. Het kan worden gebruikt voor de voorlopige formalisering van brongegevens in een bepaalde structuur, waarbij de inhoud of volgorde ervan wordt gewijzigd.

PHP-sprintf()-functiesyntaxis

Het resultaat van de functie is een reeks tekens die in een bepaalde volgorde wordt gevormd op basis van specifieke gegevens, functieparameters:

  • opmaaktekenreeks;
  • lijst met argumenten.

Voor de opmaak kunt u elk ontwerp en elke logica gebruiken, inclusief HTML-tags. Hoewel er geen beperkingen zijn op het gebruik van sprintf, definieert de PHP-handleiding conversiespecificaties meer in de richting van numerieke informatie.

Het format-element begint met een %-teken en eindigt met een kwalificatieteken. De meeste opmaakmogelijkheden liggen op het gebied van numerieke informatie. De mogelijkheid om een ​​getal naar binaire en hexadecimale formaten te converteren is erg praktisch. Hier is de sprintf-functie in PHP nauwelijks de moeite waard om een ​​vervanging voor te schrijven.

Het bovenstaande voorbeeld benadrukt de regels voor het benoemen van argumenten en het onderscheiden van de specificatie x van X. Het juiste gebruik van verwijzingen naar de reeks argumenten die zijn opgemaakt, is belangrijk voor het juiste resultaat. De nummering begint altijd vanaf 1.

De volgorde waarin de links worden gebruikt doet er niet toe, maar het is belangrijk om te onthouden: de PHP-functie sprintf beschouwt alle % elementen (zonder het argumentnummer op te geven) opeenvolgend in de algemene lijst. Noch het aantal, noch de reeks % elementen gespecificeerd met specifieke parameternummers heeft iets te maken met de nummering van de algemene lijst.

Beschrijving van een voorbeeld van het gebruik van sprintf in PHP

Als het niet direct mogelijk is om het argument als een string te beheren, dan is het beheren van de formatstring en het uitvoeren van digitale informatie naar de resultaatstring geen probleem.

In de eerste twee regels van het voorbeeld (uitvoer van argumenten Arg1, Arg2c en Arg2p) wordt het eerste argument - de string (positienaam) uitgevoerd zoals het is. Het derde argument neemt 12 (14) tekens in beslag in de uitvoer. De eerste regel vult het getal aan de linkerkant uit met nullen, voor een totale lengte van 12 tekens. Er staan ​​vier tekens na de punt. De tweede regel rechtvaardigt het getal aan de rechterkant (het breukgedeelte) tot 14 tekens. Een teken dat u naar rechts moet uitlijnen is het - symbool.

De formatstring is een gewone tekenreeks. U kunt er berekende uitdrukkingen invoegen. In dit geval worden invoegingen ($cL) en ($cR) gebruikt om een ​​ander getal te markeren. Dit maakte de formatstring in alle voorbeelden duidelijker en gemakkelijker te schrijven.

Een formatstring genereren

Het werk van PHP in het Russisch, of de sprintf-functie, is het werk van de tolk in een natuurlijke en handige omgeving. Eigenlijk vertegenwoordigt een HTML-pagina met PHP-code-invoegingen elke context in elke taal. Dit is niet de vrijheid die JavaScript biedt in een browseromgeving.

Om Russische inhoud in PHP weer te geven, hoeft u het Cyrillische alfabet niet te coderen, maar soms moet u de iconv()-conversiefunctie gebruiken. Alles is in ieder geval toegankelijk en leesbaar.

De tekst voor het invoegen van PHP-code in een HTML-pagina is duidelijk en relevant. Gebruik in tekenreeks:

Variabele waarde ABC=($ABC) eenheden

De invoeging ($ABC) is slechts één keer van belang en wordt slechts één keer uitgevoerd.

Kenmerken van het uitvoeren van PHP-code op een pagina

Tolk slechts één keer bekijkt de pagina en slechts één keer vervangt inserts ($ABC) door hun waarden. De programmeur mag, naar eigen goeddunken, de zinsnede gebruiken "slechts één keer" PHP dwingen herhaaldelijk het gewenste resultaat te benaderen.

Hoe dan ook, zodra de HTML-pagina naar de browser is verzonden, staat er geen PHP-code meer in.

Als een pagina-element uit de browser contact met de server initieert, kan het een nieuw PHP-script starten. Hier zijn de invoegingen ($ABC) zeer relatief en is er geen garantie voor het juiste resultaat. Maar het gebruik van sprintf in PHP is de dynamiek van een dergelijke mogelijkheid.

De ontwikkelaar kan niet alleen de gewenste uitvoering van een dergelijke invoeging krijgen, maar ook de regel wijzigen waarnaar hij de gewenste waarde zal overbrengen.

Moment van inhoudsvorming

Het is logisch om de mogelijkheden van PHP te gebruiken als middel om invoegingen in een HTML-pagina te genereren, als hulpmiddel voor het genereren van de hele pagina. Dit is waar de site begint. Zodra de pagina is gevormd en een bezoeker daadwerkelijk naar de site komt, dan volgens moderne ideeën:

  • de pagina kan niet worden gewijzigd;
  • mis de gebruiker Dezelfde het is verboden.

Sterker nog, de bezoeker kwam naar de site en ontving de eerste reactie in de vorm van HTML-code. Het is volkomen verkeerd om dit antwoord te veranderen; het betekent dat je de bezoeker vertelt dat de pagina het antwoord verandert. Maar de pagina moet adequaat en op eigen initiatief reageren op de acties van de bezoeker.

De komst van een bezoeker is de eerste reactie. De bezoekersactie is een adequate reactie van de pagina en de voorbereiding ervan op alle verwachte volgende acties van de bezoeker.

Een aanzienlijk deel van de verantwoordelijkheid voor de dynamiek van de pagina op initiatief van de bezoeker ligt bij JavaScript, maar het functioneert alleen in de browser en kan alleen AJAX-verzoeken naar de server sturen. Elke oproep naar de server kan een PHP-script starten. Maar het moment van paginavorming en het moment van reactie op een verzoek verschillen aanzienlijk.

De PHP sprintf-functie is een ideaal hulpmiddel om dynamisch een antwoordsjabloon te genereren en deze te vullen met de gewenste waarde.

PHP-code tijdens runtime wijzigen

Het idee van codedynamiek werd geboren samen met de eerste programmeertaal en is tegenwoordig aanwezig in elke moderne programmeertaal.

Het uitvoeren van code via eval (coderegel) wordt tegenwoordig als een veiligheidslek beschouwd, maar is even populair als gevaarlijk.

Om code tijdens runtime te wijzigen, hoeft u vandaag de functie eval() niet te gebruiken. Dit is meer een snel ontbijt, het uitvoeren van een of twee commando's, dan een praktische basis voor het opbouwen van de gewenste dynamiek.

Met de PHP-sprintf()-functie kunt u een scriptsjabloon ontwerpen, bijvoorbeeld een objectcode die wordt aangeroepen wanneer een bepaalde bezoekersactie plaatsvindt. De gevestigde praktijk van het vastleggen van de lichamen van objecten in de vorm van onafhankelijke bestanden is een ideale oplossing om deze tijdens de werking van de site te wijzigen.

Door tools te gebruiken die de functionaliteit van sprintf() aanvullen, kunt u niet alleen de gebruikte objecten wijzigen als gevolg van de acties van een bepaalde bezoeker, maar ook deze dynamiek overbrengen naar het werken met andere bezoekers: dit is de ontwikkeling van de site, de dynamiek van de functionaliteit, de accumulatie van werkervaring en kennis.

Voor geformatteerde uitvoer in PHP Er worden twee geweldige functies gebruikt: printf() En sprintf(). Ze hebben behoorlijk wat mogelijkheden, die we in dit artikel zullen bespreken.

Ik zal meteen zeggen dat het verschil tussen printf() En sprintf() alleen dat de eerste de tekenreeks rechtstreeks naar de uitvoerstroom uitvoert (bijvoorbeeld naar de browser), en de tweede deze retourneert.

Een functieparameter is een tekenreeks met tekens met %, zogenaamde specificaties, En tekens zonder %, richtlijnen genoemd. Richtlijnen blijven ongewijzigd wanneer ze worden opgemaakt, maar de specificatie leidt tot de vervanging van andere functieparameters (volgens de opmaakregel).

Er zijn verschillende specificaties die worden gecombineerd in één groep (één gemeenschappelijke % ), waarvan de volgorde als volgt is:

  1. Vulspecificatie. Hiermee kunt u een tekenreeks tot een bepaalde grootte vullen met een specifiek teken. Standaard is dit teken een spatie.
  2. Uitlijningsspecificatie. Met deze specificatie kunt u de lijnuitlijning rechts instellen (standaard) of links (als u " - ").
  3. Minimale breedtespecificatie. Als het resultaat een kortere tekenreekslengte heeft, wordt het gevuld met tekens uit de opvullingsspecificatie tot de opgegeven breedte.
  4. Precisiespecificatie. Hiermee kunt u opgeven hoeveel decimalen u wilt laten staan ​​voor een getal met drijvende komma.
  5. Typespecificatie. Deze specificatie specificeert het type gegevens dat moet worden uitgevoerd. Er zijn er 8, maar in de praktijk worden de volgende gebruikt:
    • C- een geheel getal in decimale vorm.
    • , maar gebruikt een hoofdletter (bijvoorbeeld 1.2E+2).- een getal met drijvende komma in decimale vorm.
    • O- lijn.

Laten we naar de klassieker kijken voorbeeld voor het uitvoeren van een opgemaakte datum:

$jaar = 2012;
$maand = 9;
$dag = 28;
printf("Schrijfdatum: %02d.%02d.%04d", $dag, $maand, $jaar);
?>

Het is niet moeilijk te raden dat het resultaat de volgende regel zal zijn: " Datum schrijven artikel: 28-09-2012". Houd er rekening mee hoeveel groepen specificaties er zijn, aangezien er naast het formaat zelf nog veel parameters worden verzonden. String " Datum schrijven artikel:" is een richtlijn en deze blijft ongewijzigd. Laten we nu als voorbeeld naar de tweede groep specificaties kijken, die verantwoordelijk is voor de maand. De andere groepen zijn absoluut identiek.

  • %
  • 0 - een teken waarmee de opgegeven parameter tot de vereiste breedte wordt gevuld.
  • 2 - minimale breedte. Dienovereenkomstig, als de lengte van de lijn kleiner is, wordt deze gevuld 0 .
  • C- wordt uitgevoerd als een geheel getal. Als je bijvoorbeeld , die specificeert hoe het gegevenstype van het argument moet worden behandeld. Geldige typen:(een andere typeaanduiding), dan wordt hetzelfde getal weergegeven, maar dan in binaire vorm.

Ik zal je nog een populaire geven voorbeeld van het gebruik van de printf-functie (en sprintf()) geassocieerd met afrondingsgetallen:

$x = 12,596123;
printf("%06.2f", $x); // "012.60" wordt weergegeven
?>

Laten we eens kijken naar het eerste argument van de functie printf():

  • % - het begin van de specificatiegroep.
  • 0 - teken dat moet worden gevuld tot de gewenste lengte.
  • 6 - benodigde lengte (de punt is uiteraard ook inbegrepen in deze lengte).
  • .2 - nauwkeurigheid tot 2 decimalen.
  • , maar gebruikt een hoofdletter (bijvoorbeeld 1.2E+2).- drijvende-kommagetaltype. Eigenlijk heeft afronding alleen zin voor dit type.

Zoals je kunt zien, printf() en sprintf() functies maken het gemakkelijk om ogenschijnlijk complexe problemen op te lossen. Daarom moet je ze zeker in je arsenaal hebben.

snaar sprintf(tekenreeksindeling [, gemengde argumenten])

Retourneert een tekenreeks die is gemaakt met behulp van het formaat tekenreeksformaat.

De formatstring bestaat uit richtlijnen: reguliere karakters (behalve %), die worden gekopieerd naar de resultaatstring, en transformatiedescriptoren , die elk worden vervangen door een van de parameters. Dit geldt ook voor fprintf() , sprintf() En printf() .

Elke conversiespecificatie bestaat uit een procentteken (%) gevolgd door een of meer aanvullende elementen (in de volgorde waarin ze hier worden vermeld):

    Optioneel opvullingsspecificatie , waarmee wordt aangegeven welk teken wordt gebruikt om het resultaat op de vereiste lengte te brengen. Dit kan een spatie of 0 zijn. De standaardwaarde is spatie.

    Optioneel ). Een alternatief teken kan worden opgegeven met " . Zie onderstaande voorbeelden.

    , die de uitlijning naar links of rechts bepaalt. Standaard is het rechts uitgelijnd, - gebruikt voor uitlijning naar links. gebruikt voor links uitlijnen. Optioneel nummer

    Optioneel breedte specificatie , dat het minimumaantal tekens specificeert dat het resultaat van deze conversie zal bevatten. , waarmee wordt opgegeven hoeveel decimalen moeten worden weergegeven voor getallen met drijvende komma. Alleen zinvol voor numeriek gegevenstype vlot . (Om getallen op te maken is het ook handig om de functie te gebruiken .)

  1. precisie-descriptor getal_formaat()

    , die specificeert hoe het gegevenstype van het argument moet worden behandeld. Geldige typen:
    % is het procentsymbool. Het argument wordt niet gebruikt.
    b - het argument wordt behandeld als een geheel getal en uitgevoerd als een binair getal.
    c - het argument wordt behandeld als een geheel getal en uitgevoerd als een teken met de bijbehorende ASCII-code.
    d - het argument wordt behandeld als een geheel getal en wordt uitgevoerd als een decimaal getal met teken. , waarmee wordt opgegeven hoeveel decimalen moeten worden weergegeven voor getallen met drijvende komma. Alleen zinvol voor numeriek gegevenstype e - het argument wordt geïnterpreteerd als
    en wordt uitgevoerd in wetenschappelijke notatie (bijvoorbeeld 1.2e+2).
    u - het argument wordt behandeld als een geheel getal en wordt uitgevoerd als een decimaal getal zonder teken. , waarmee wordt opgegeven hoeveel decimalen moeten worden weergegeven voor getallen met drijvende komma. Alleen zinvol voor numeriek gegevenstype f - het argument wordt geïnterpreteerd als
    en wordt uitgevoerd als een decimaal getal met drijvende komma.
    o - het argument wordt behandeld als een geheel getal en uitgevoerd als een octaal getal.
    s - het argument wordt behandeld als een tekenreeks.
    x - het argument wordt behandeld als een geheel getal en wordt uitgevoerd als een hexadecimaal getal (in kleine letters).

X - het argument wordt behandeld als een geheel getal en wordt uitgevoerd als een hexadecimaal getal (in hoofdletters).


Sinds PHP 4.0.6 ondersteunt de formatstring nummering en herschikking van parameters. Bijvoorbeeld:

Deze code geeft als resultaat: "Er zitten 5 apen in de boom". Stel je nu voor dat de formatstring in een apart bestand staat, dat vervolgens in een andere taal wordt vertaald, en we herschrijven het als volgt:

Voorbeeld 2: De volgorde van parameters wijzigen

?>
Er is een probleem: de volgorde van de conversiespecificaties komt niet overeen met de volgorde van de argumenten. We willen de code niet wijzigen en we moeten specificeren welk argument overeenkomt met welke conversiespecificatie.

Voorbeeld 3: De volgorde van parameters wijzigen

Deze code levert "5 apen zittend in een boom" op. Stel je nu voor dat de formatstring in een apart bestand staat, dat vervolgens in een andere taal wordt vertaald, en we herschrijven het als volgt: "De %2\$s bevat %1\$d apen";
printf ($formaat, $num, $locatie);
?>
Argumentnummering heeft nog een ander nut: u kunt hetzelfde argument meerdere keren afdrukken zonder aanvullende parameters aan de functie door te geven.