我想要以下输出: -
即将从您的充值帐户中扣除50%的27.59欧元。
当我做这样的事情时: -
$variablesArray[0] = '€';
$variablesArray[1] = 27.59;
$stringWithVariables = 'About to deduct 50% of %s %s from your Top-Up account.';
echo vsprintf($stringWithVariables, $variablesArray);
但它给了我这个错误vsprintf() [function.vsprintf]: Too few arguments in ...
,因为它认为%
中的50%
也可以替换。我怎么逃避呢?
答案 0 :(得分:303)
使用其他%
:
$stringWithVariables = 'About to deduct 50%% of %s %s from your Top-Up account.';
答案 1 :(得分:1)
要在您的语言字符串中添加 %
,您只需添加双百分比 %%
而不是一个
答案 2 :(得分:0)
这很容易。
将另一个%
放在原始%
的前面以逃避它。
例如,
$num=23;
printf("%%d of 23 = %d",$num);
输出:
%d of 23 = 23
答案 3 :(得分:0)
这个怎么样:
$variablesArray[0] = '%';
$variablesArray[1] = '€';
$variablesArray[2] = 27.59;
$stringWithVariables = 'About to deduct 50%s of %s %s from your Top-Up account.';
echo vsprintf($stringWithVariables, $variablesArray);
只需在变量数组中添加百分号
即可答案 4 :(得分:0)
这对我有用:
sprintf(
'%s (Cash Discount: %%%s, Deferred Discount: %%%s)',
$segment->name,
$segment->discount_cash,
$segment->discount_deferred,
)
// Gold (Cash Discount: %25, Deferred Discount: %20)