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 );

What should we write about next?

If there is a topic which fits the typical ones of this site, which you would like to see me write about, please use the form, below, to submit your idea.

Your Name

Your Email

Suggested Topic

Suggestion Details

Leave a Reply

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