2

将长度说明符包含在格式字符串中是否有任何好处,sprintf或者printf即使PHP 手册中没有提到它:

  • h- 该参数被解释为一个短整型或无符号短整型(仅适用于整数说明符:、idou)。xX
  • li- 对于整数说明符( 、do、和),该参数被解释为 long int 或 unsigned long int,u而对于说明符和,该参数被解释为宽字符或宽字符串。xXcs
  • L- 参数被解释为 long double(仅适用于浮点说明符:、eEf)。gG

还是把它排除在外更好?我想我想弄清楚的是为什么 php 决定把它排除在外。

考虑以下来自 phpriot.com 的代码:

$a = 0.5;
$b = 0.1;
$c = 16;

echo sprintf('%01.2lf %.1lf 0x%x', $a, $b, $c); # 0.50 0.1 0x10
4

2 回答 2

4

It's not needed. PHP doesn't have short ints, ints, long ints, etc. It has only ints.

于 2012-06-26T17:00:22.850 回答
4

在 PHP 中,除了IntegersFloats之外,数字之间没有区别。根据系统架构(32 位或 64 位),整数类型为 int 或 int64。您可以使用字符串和 BCMath 来模拟更大的数字,但它们将始终存储在字符串中。

因此,在 PHP 中,没有必要使用长度说明符来更改数字的类型。要么是浮子,要么不是。

于 2012-06-26T17:01:58.950 回答