が、私は非常に単純な自身を実装することを決定したPythonの1の基本的なfunctionnalititesのほとんどとして。
function format($msg, $vars)
{
$vars = (array)$vars;
$msg = preg_replace_callback('#\{\}#', function($r){
static $i = 0;
return '{'.($i++).'}';
}, $msg);
return str_replace(
array_map(function($k) {
return '{'.$k.'}';
}, array_keys($vars)),
array_values($vars),
$msg
);
}
# Samples:
# Hello foo and bar
echo format('Hello {} and {}.', array('foo', 'bar'));
# Hello Mom
echo format('Hello {}', 'Mom');
# Hello foo, bar and foo
echo format('Hello {}, {1} and {0}', array('foo', 'bar'));
# I'm not a fool nor a bar
echo format('I\'m not a {foo} nor a {}', array('foo' => 'fool', 'bar'));
- 注文は
- 、(マッチした最初の
{}
は{0}
などに変換されます)あなたはそれが単にインクリメントしたい場合は、名前/番号を省略することができます
- 、重要ではありません。パラメータの名前を付けることができます。
- 他の3つのポイントを混在させることができます。
あなたはこれを探していますか? –
** seealso:**:https://stackoverflow.com/questions/5701985/vsprintf-or -sprintf-with-named-arguments – dreftymac