Рубрики

PHP | Спецификаторы формата

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

Отформатированные строки используют спецификаторы формата для создания базовой структуры строки. Спецификаторы формата — это предопределенная последовательность символов, которая может использоваться для определения типа данных, которые должны быть сохранены или отображены, а также того, как должно быть отформатировано любое заданное значение, например точность, заполнение и т. Д. Спецификаторы формата, как правило, начинаются с символа процентили или «%». сопровождается последовательностью символов, которая определяет тип данных и желаемый формат. При итерации по формату, если встречается какой-либо спецификатор формата, компилятор / интерпретатор понимает, что существует соответствующая директива, значение которой должно быть отформатировано и использовано. Следовательно, строка может вообще не содержать спецификатора формата, но если она имеет, по крайней мере, такое же количество директив должно быть отправлено повторно. В случае чрезмерных указаний некоторые языки просто игнорируют ненужные и позволяют выполнять их с предупреждением.

Ниже приведено краткое обсуждение форматов и типов данных, которые могут быть указаны в PHP. Каждый из них реализован с предшествующим символом процентиля или «%».

Форматирование значений

  • Спецификатор знака может использоваться для принудительного отображения знака (- или +), который будет использоваться на числе. По умолчанию только знак — отображается на отрицательных числах. При использовании этого спецификатора положительные числа отображаются с предшествующим +. Это может быть достигнуто с помощью символа + и может быть реализовано только для числовых значений. Пример,
    %+d    // Specify the integer along with it's sign (+ or -).
    
  • Спецификатор заполнения может использоваться, чтобы указать, какой символ будет использоваться для заполнения результатов до любого определенного размера строки. По умолчанию пробелы используются в качестве отступов. Альтернативный символ-заполнитель может быть указан с помощью префикса с одинарной кавычкой или '. Пример,
    %'0d    // Pad with 0s to achieve the right length. 
    
  • Спецификатор выравнивания может быть использован для указания выравнивания результата, т.е. выровнено по левому или правому краю. По умолчанию это правильно. Использование символа — делает его выровненным по левому краю. Пример,
    %-s    // Specifies the alignment as left-justified.
    
  • Спецификатор ширины может использоваться для указания минимального количества символов, присутствующих в самом результате. Можно указать любое число, обозначающее минимальную ширину. Наиболее часто используется со спецификатором заполнения. Пример,
             // Specifies there should be at least 5 digits,
    %'05d    // if less, then 0s are filled to get the desired result.  
    
  • Прецизионный спецификатор может быть использован для определения точности при работе с действительными числами. Точка или '.' сопровождаемая необязательной строкой десятичных цифр, которая относится к десятичным цифрам, отображаемым после десятичной дроби.
    При использовании этого спецификатора в строке он определяет максимальный предел символов в строке.
    Пример,
    %.5f    // Defines Real Number Precision.
    %.2s    // Maximum Character to be allowed in a string.  
    

Типы данных

  • % : Для отображения %. Никаких директив не требуется.
  • b: директива относится к целому числу и отображается в виде двоичного числа.
  • c: Директива ссылается на целое число и отображается как соответствующий символ ASCII.
  • d: директива ссылается на целое число и отображается как десятичное число.
  • e: Директива относится к научной нотации (например, 2.12e + 3).
  • E: Псевдоним 'e'.
  • f: директива ссылается на число с плавающей точкой и отображается как действительное число (с учетом языка).
  • F: Директива ссылается на число с плавающей запятой и отображается как действительное число (без учета локали).
  • o: директива ссылается на целое число и отображается как восьмеричное число.
  • s: директива обрабатывается и отображается как строка.
  • u: Директива ссылается на целое число и отображается как десятичное число без знака.
  • x: Директива ссылается на целое число и отображается в виде шестнадцатеричного числа (строчными буквами).
  • X: Директива ссылается на целое число и отображается в виде шестнадцатеричного числа (с заглавными буквами).

Следующий код иллюстрирует работу различных спецификаторов формата:

<?php

  
// PHP программа для иллюстрации работы
// разных спецификаторов формата

  
// Создание фиктивных переменных

$numValue = 5;

$strValue = "GeeksForGeeks";

  
// Использование спецификатора знака.

printf("Signed Number: %+d\n",$numValue);

  
// Спецификатор отступов и ширины.

printf("Padding and Width\n%'03d\n%'03d\n",

                    $numValue,$numValue+10);

  
// Точный Спецификатор.

printf("Precision: %.5f %.5s\n", $numValue, $strValue);

  
// Различные типы данных.
// Целое число и процентиль.

printf("Percentage: %d%%\n",$numValue);

  
// Двоичное восьмеричное и шестнадцатеричное представление.

printf("Binary: %b Octal: %o Hexadecimal: %x\n",

        $numValue+10,$numValue+10,$numValue+10);

  
// Представление персонажа.

printf("Character: %c\n",$numValue+60);

  
// Строки.

printf("String: %s\n",$strValue);

  
// Вещественные числа.

printf("RealNumber: %f\n",1/$numValue); 

  
// Научное численное представление.

printf("Scientific Representation:%e\n",$numValue+100); 

  
?>

Выход:

Signed Number: +5
Padding and Width
005
015
Precision: 5.00000 Geeks
Percentage: 5%
Binary: 1111 Octal: 17 Hexadecimal: f
Character: A
String: GeeksForGeeks
RealNumber: 0.200000
Scientific Representation:1.050000e+2

Рекомендуемые посты:

PHP | Спецификаторы формата

0.00 (0%) 0 votes