Объектно-ориентированный язык сценариев php, страница 18

 

Работа с функцией printf()

 

Функции printf() передается в качестве аргумента строка, которая называется строкой управления форматом. Помимо этого функции передаются дополнительные аргументы, которые будут отображены в соответствии с содержанием строки управления форматом. Аргументы разделяются запятыми.

Рассмотрим пример, который выводит два числа с помощью функции printf():

 

Пример 9.1 Вывод двух чисел в десятичном представлении

 

<?php

printf("Первое число: %d<br>Второе число: %b", 5555,8934);

?>

 

Результат работы программы будет следующим:

Первое число:5555

Второе число:10001011100110

 

Мы вставили специальный код, называющийся определителем преобразования, в строку управления форматом. Определитель преобразования начинается с символа процента и определят то, как функция printf() будет обрабатывать  соответствующий дополнительный аргумент. Вы можете включить в строку управления форматом любое количество определителей преобразования. При этом нужно передать функции printf() такое же количество аргументов.

В нашем примере используются два определителя преобразования. Первый из определителей соответствует первому дополнительному аргументу функции, числу 5555, а второй относится к аргументу 8934. Символ d, следующий за знаком процента означает, что первый аргумент надо представить в виде десятичного числа, а символ b, сигнализирует о том, что число 8964 необходимо представить в двоичной форме. Символы, следующие за определителем преобразования (после знака процента), принято называть определителями типа.

 

Таблица 9.1  Наиболее распространенные определители типа

 

Определитель

Описание

d

Выводит аргумент как десятичное число

b

Выводит аргумент как двоичное число

f

Выводит аргумент как число с плавающей запятой

o

Выводит аргумент как восьмеричное число

X

Выводит аргумент как шестнадцатеричное число в верхнем регистре

s

Выводит аргумент как строку

 

Использование определителя заполнения

Вы можете задать строку управления форматом так, чтобы для заполнения использовались выбранные вами символы. Определитель заполнения должен следовать сразу за символом процента и одиночной кавычкой ('). Далее указывается символ заполнения и общее количество позиций, отведенных под число.

 

Пример 9.2 Использования определителя заполнения

 

<?php

printf("%'x6d", 1);

?>

 

Результат работы данной программы будет выглядеть так:

xxxxx1

 

Рассмотрим вид этого определителя преобразования. Сначала идет знак процента, ко торый говорит о том, что перед нами определитель преобразования, далее следует одинарная кавычка и определитель заполнения, состоящий из двух символов, а завершает всю структуру определитель типа d. Для заполнения x-ми выводимого в данном примере числа определитель заполнения должен содержать, в качестве своего первого символа, x, а за x должно следовать число, определяющее количество символов, которое должна занимать выводимая переменная. Если выводимое число занимает меньше символов, перед ним будет стоять соответствующее число иксов. В нашем примере под вывод отведено 6 символов, а выводим число 1, которое занимает один символ. Значит, свободные места (их пять) будут заняты иксами, как показано в примере. Если бы число занимало все шесть символов, то ни одного икса вы бы при выводе не увидели.

Вместо икса можно использовать любые другие символы, даже знаки пробела. Например, таким приемом можно обеспечить выравнивание чисел при выводе по правому краю.

Задание точности

Порой приходится округлять полученные данные при выводе их на экран. В частности, это очень удобно при работе с валютами. Определитель точности должен находиться прямо перед определителем типа. Определитель точности состоит из точки, за которой следует количество знаков после запятой, которое необходимо отображать. Этот определитель действует только на данные, выводящиеся с определителем типа f.