Часто встречается задача представления различных данных в строковом
виде, например, для вывода на экран. Для этого идеально подходят две функции —
printf()
и sprintf()
. printf()
сразу выводит результат на экран, a sprintf()
возвращает его в виде строки. Ниже приведен синтаксис этих функций (здесь и
далее аргументы в квадратных скобках являются необязательными):
printf (формат [, аргументы])
sprintf (формат [, аргументы])
Строка формата состоит из нескольких директив (в предельном случае она
может быть и пуста, но тогда и результат будет пустой строкой). Каждая
директива представляет собой символы, которые копируются без изменений, или
спецификацию фотмата. Спецификация формата начинается со знака
процента (%)
, после которого следуют по порядку один или несколько элементов:
-
Необязательный описатель заполнения, определяющий, какой символ будет использоваться для дополнения результата до требуемой длины. Это может быть пробел (по умолчанию) или
0
. -
Необязательный символ «
-
» (минус), который задает выравнивание результата влево. По умолчанию результат выравнивается вправо. -
Необязательное число, задающее минимальное число символов в результате форматирования.
-
Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Записывается как точка с числом после нее. Имеет смысл только для числовых данных типа float.
-
Описатель типа данных аргумента — символ.
Ниже перечислены допустимые описатели типов данных:
%
Применяется для вывода символа процента. Аргумент не
используется.
b
Аргумент считается целым числом и выводится в виде двоичного
числа.
с
Аргумент считается целым числом и выводится в виде символа с
соответствующим кодом ASCII.
d
Аргумент считается целым числом и выводится в виде десятичного
числа со знаком.
е
Аргумент считается вещественным числом (float) и выводится в
экспоненциальном виде, например 1.2е+2
.
f
Аргумент считается вещественным числом (float) и выводится в виде
десятичного числа.
о
Аргумент считается целым числом и выводится в виде
восьмеричного числа.
s
Аргумент считается строкой и выводится как строка.
и
Аргумент считается целым числом и выводится в виде целого числа
без знака.
х
Аргумент считается целым числом и выводится в виде шестнадцате-
ричного числа, используются прописные буквы.
X
Аргумент считается целым числом и выводится в виде шестнадцате-
ричного числа, используются строчные буквы.
Эти функции особенно удобны для работы с вещественными числами.
Например, спецификация формата %f6.2
описывает вещественное число, которое
займет 6 знаков, из них два знака будет отведено на дробную часть числа. Ниже
приведен пример использования рассматриваемых функций.
<?php
printf ("У меня %s яблок и %s апельсинов. \n" , 6, 56) ;
$уеаг = 2005;
$month = 4;
$day = 28;
$price = 5999.99;
printf("\$%01.2f\n", $price);
printf("%6.2f\n", 1.2);
printf("%6.2f\n", 10.2) ;
printf("%6.2f\n", 100.2) ;
$string = sprintf ("Сейчас у меня %s яблок и %s апельсинов.", "\n" , 5,45);
echo $string;
?>
В этом примере представлен широкий спектр типов данных. Вот что будет выведено на экран в результате:
У меня б яблок и 56 апельсинов.
$5999.99
1.20
10.20
100.20
Сейчас у меня 5 яблок и 45 апельсинов.