次の出力が必要です:-
トップアップアカウントから27.59ユーロの50%を差し引きます。
私がこのようなことをするとき:-
$variablesArray[0] = '€';
$variablesArray[1] = 27.59;
$stringWithVariables = 'About to deduct 50% of %s %s from your Top-Up account.';
echo vsprintf($stringWithVariables, $variablesArray);
しかし、%
の50%
も置換のために考慮するため、このエラーvsprintf() [function.vsprintf]: Too few arguments in ...
が発生します。どうすれば脱出できますか?
別の%
でエスケープします:
$stringWithVariables = 'About to deduct 50%% of %s %s from your Top-Up account.';
それは非常に簡単です。
元の%
の前に別の%
を置いてエスケープします。
例えば、
$num=23;
printf("%%d of 23 = %d",$num);
出力:
%d of 23 = 23
これはどうですか:
$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);
変数配列にパーセント記号を追加するだけです