在带有 %s 字符串的 PHP sprintf 函数中使用美元符号

Use dollar sign in PHP sprintf function with a %s string

这涉及到 Wordpress 语法,但我认为这主要是一个 PHP 问题。

我正在使用这个功能:

$subject = sprintf( '%s New Customer Order %s for %s on %s', $blogname, $order->id, $order->get_total, $order->order_date );

生成如下内容: "SiteName New Customer Order #3715 for .00 on July 5th"

问题是 $order_total 输出为不带美元符号的普通整数。使用 $%s 或 \$%s 不起作用。我如何将美元符号附加到第二个 %s 变量?

我愿意:

$currency = '$';
$subject = sprintf( '%s New Customer Order %s for %s%01.2f on %s', 
      $blogname, 
      $order->id, 
      $currency,  
      $order->get_total, 
      $order->order_date );

因此能够针对不同的货币进行更改,并将金额格式化为美元和美分(或欧元和美分、英镑和便士等)

您实际上可以在 get_total 变量之前连接美元符号 $。像这样:

<?php

  //Test class
  class Order{
    public $id = "3333";
    public $get_total = "50.00";
    public $order_date = "07-06-2017";
  }
  $order = new Order();

  // Concatenate the dollar sign $ before the $order->get_total variable
  echo sprintf( '%s New Customer Order %s for %s on %s', "Test name", $order->id, "$" . $order->get_total, $order->order_date );

?>

工作示例:http://sandbox.onlinephpfunctions.com/code/648e6873ebfe9ffc68eb54e61cc2e953be612dca