This 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 );
Click to show/hide the PHP Snippets Series Index
PHP Snippets |
---|
Echo |
Quotes |
Printf |
Sprintf |
If Statements |
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.