PHP String sprintf() Function



The PHP String sprintf() function is used to format strings just like the C language's printf() function. It allows you to format strings by replacing placeholders with the correct values.

Syntax

Below is the syntax of the PHP String sprintf() function −

string sprintf ( string $format, mixed ...$values )

Parameters

Here are the parameters of the sprintf() function −

  • $format − This is a string specifying the format of the output. It contains placeholders that start with a percent sign (%) and then a character indicating the sort of value that should be entered at that location.

  • $values − These are the values that will be used to replace the format string's placeholders. You can give any number of arguments, based on the number of placeholders in the format string and their type.

Return Value

The sprintf() function returns a string produced as per the formatting string format.

Errors/Exceptions

Here are the errors and exceptions given below −

Starting from PHP 8.0.0 −

  • ValueError is thrown if the number of arguments is zero.

  • ValueError is thrown if [width] is less than 0 or greater than PHP_INT_MAX.

  • ValueError is thrown if [precision] is less than 0 or greater than PHP_INT_MAX.

  • ArgumentCountError is thrown if fewer arguments are provided than required.

Before PHP 8.0.0 −

  • A warning (E_WARNING) was shown for the above cases instead of throwing errors.

  • In case of missing arguments, false was returned, and a warning (E_WARNING) was shown.

PHP Version

First introduced in core PHP 4, the sprintf() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

First we will show you the basic example of the PHP String sprintf() function to get the formatted string.

<?php
   $format = 123.456;
   $formatted = sprintf("%.2f", $format);
   echo $formatted; 
?>

Output

Here is the outcome of the following code −

123.46

Example 2

In the below PHP code we are using the sprintf() function to format a name and age into a sentence.

<?php
   $name = "Aadhya";
   $age = 18;
   $message = sprintf("My name is %s and I am %d years old.", $name, $age);
   echo $message; 
?> 

Output

This will generate the below output −

My name is Aadhya and I am 18 years old.

Example 3

This program uses sprintf() function to create a table like output with padded and aligned text.

<?php
   $item = "Apple";
   $price = 150;
   $formatted = sprintf("| %-10s | %10.2f |", $item, $price);
   echo $formatted; 
?> 

Output

This will create the below output −

| Apple      |     150.00 |

Example 4

In the following example, with the help of the sprintf() function we will format a receipt with multiple values, like integers, floats and strings.

<?php
   $product = "Laptop";
   $quantity = 2;
   $price = 50000;
   $total = $quantity * $price;

   $receipt = sprintf(
      "Product: %s\nQuantity: %d\nPrice per item: Rs.%.2f\nTotal: Rs.%.2f",
      $product, $quantity, $price, $total
   );

   echo $receipt;
?> 

Output

Following is the output of the above code −

Product: Laptop
Quantity: 2
Price per item: Rs.50000.00
Total: Rs.100000.00
php_function_reference.htm
Advertisements