【问题标题】:Type cast Int to String in PHP? [duplicate]在 PHP 中将 Int 类型转换为字符串? [复制]
【发布时间】:2011-12-02 17:29:03
【问题描述】:

可能重复:
How to prefix a positive number with plus sign in PHP

我有类似的代码

$points = -2;
$points = +2;

我想将它们显示为包含 - 或 + 的字符串。这适用于 - 但不适用于 +

我已经尝试过这个尝试获得积极的迹象

echo (string)$points;

有什么想法吗?

【问题讨论】:

  • 不,这似乎使减号也消失了。
  • 无论如何 Daniel A White,请阅读发布在该问题上的日期。那是一年多以前的事了。 “问 2010 年 4 月 21 日 11:22”
  • @SeanHJenkins:“重复”仅表示“这已在之前的帖子中介绍过”,不一定是 以前曾问过这个问题。日期无关紧要。这不是一件坏事,它应该是有帮助的。

标签: php casting


【解决方案1】:

省略了正号,因为如果一个数字不是负数,它就是正数。

您必须使用各种功能:

function format_sign($number) {
  $number = int($number);

  if ($number > 0) {
    return "+" . $number;
  } else {
    return $number;
  }
}

你可以这样使用它:

$n = -10;

echo format_sign($n);

不,我撒谎了。 sprintf() 似乎是一个更好的解决方案:

function format_sign($number) {
  return sprintf("%+d", $number);
}

【讨论】:

  • 不要与number_format 混淆,这是一个真正的功能。
  • PHP 的函数太多了...
【解决方案2】:

正如Kerrek所说,你可以使用printf,也可以使用三元语句:

echo ($points > 0 ? '+' . $points : $points);

对于使用 printf,应该是:printf('%+d', $points);
使用 printf 意味着您还可以指定指定的宽度和小数位数,如果您尝试获取特定格式,这可能会派上用场。

【讨论】:

    【解决方案3】:

    您可以使用以下方式:

    printf('%+d', $points);
    

    更多解释请参见示例HERE

    【讨论】:

      猜你喜欢
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      相关资源
      最近更新 更多