PHP Snippets: Printf

PHPThis post is part of the PHP Snippets series where I will be covering the basics of developing in PHP.

The printf function is similar to the echo function in that it will output text, but differs in that it outputs a formatted string.

The syntax of the printf function is:

printf( string, arg 1, arg 2, ... )

Multiple arguments can be provided to the function for each of the placeholders to be replaced.

In the supplied string, placeholders prefixed with a % symbol are replaced with the parameters. Valid placeholders are:

Specifier Description
b The argument is treated as an integer and presented as a binary number.
c The argument is treated as an integer and presented as the character with that ASCII.
d The argument is treated as an integer and presented as a (signed) decimal number.
e The argument is treated as scientific notation (e.g. 1.2e+2).
E Like the e specifier but uses uppercase letter (e.g. 1.2E+2).
f The argument is treated as a float and presented as a floating-point number (locale aware).
F The argument is treated as a float and presented as a floating-point number (non-locale aware).
g

General format.

Let P equal the precision if nonzero, 6 if the precision is omitted, or 1 if the precision is zero. Then, if a conversion with style E would have an exponent of X:

If P > X ≥ −4, the conversion is with style f and precision P − (X + 1). Otherwise, the conversion is with style e and precision P − 1.

G Like the g specifier but uses E and f.
h Like the g specifier but uses F. Available as of PHP 8.0.0.
H Like the g specifier but uses E and F. Available as of PHP 8.0.0.
o The argument is treated as an integer and presented as an octal number.
s The argument is treated and presented as a string.
u The argument is treated as an integer and presented as an unsigned decimal number.
x The argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
X The argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).

An example replacing a number and a string in a printf

$number = 500;
$string = 'miles';

printf( 'But I would walk %d %s', $number, $string );

If you have multiple argument and want to use some more than once, you can use argument numbering/swapping where the placeholder includes the argument number.

When using this numbering/swapping you add the argument number and a $ between the % and specifier. In the example below, there are three parameters where the numeric one is used twice:

$number = 500;
$string1 = 'miles';
$string2 = 'more';

printf( 'But I would walk %1$d %2$s<br />And I would walk %1$d %3$s', $number, $string1, $string2 );

Can ISC Software Solutions help?

ISC Software Solutions are UK and Ireland based experts on Microsoft Dynamics GP. If you’d like to speak to someone about support, consultancy, upgrades, implementation, development, GP Elementz add-ons or portals, or anything else Dynamics GP related, you can use the form below.





Your Name (required):
Your Email (required):
Subject:
Enquiry message:

What should we write about next?





Your Name (required) –
Your Email (required) –

Leave a Reply

Your email address will not be published. Required fields are marked *