PHP |格式说明符

不管编程语言如何,字符串都是最常用的数据类型之一。字符串可以是硬编码(由开发人员直接指定)或格式化(其中指定了基本框架,并通过合并其他变量的值来获得最终字符串)。格式化字符串可以定义为一组段,其中每个段可能包含一个整数、浮点或甚至另一个字符串。

null

格式化字符串使用格式说明符创建字符串的基本结构。格式说明符是预定义的字符序列,可用于定义要存储或显示的数据类型,以及任何给定值的格式化方式,即精度、填充等。格式说明符通常以百分比符号或“%”开头,后跟定义数据类型和所需格式的字符序列。当在格式上迭代时,如果遇到任何格式说明符,编译器/解释器就会理解存在一个相应的指令,该指令的值将被格式化并使用。 因此,一个字符串可能根本不包含格式说明符,但如果它包含格式说明符,则至少应该重新发送相同数量的指令。在指令过多的情况下,有些语言会忽略不需要的指令,让它在执行时发出警告。

下面简要讨论可以在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 program to illustrate Working
// of different Format Specifiers
// Creating Dummy Variables
$numValue = 5;
$strValue = "GeeksForGeeks" ;
// Using Sign Specifier.
printf( "Signed Number: %+d" , $numValue );
// Padding and Width Specifier.
printf( "Padding and Width%'03d%'03d" ,
$numValue , $numValue +10);
// Precision Specifier.
printf( "Precision: %.5f %.5s" , $numValue , $strValue );
// Different DataTypes.
// Integer and Percentile.
printf( "Percentage: %d%" , $numValue );
// Binary Octal and Hexadecimal Representation.
printf( "Binary: %b Octal: %o Hexadecimal: %x" ,
$numValue +10, $numValue +10, $numValue +10);
// Character Representation.
printf( "Character: %c" , $numValue +60);
// Strings.
printf( "String: %s" , $strValue );
// Real Numbers.
printf( "RealNumber: %f" ,1/ $numValue );
// Scientific Numerical Representation.
printf( "Scientific Representation:%e" , $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
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享