<?php
declare(strict_types=1);
const PI_NAME = 'Число Пи';
const E_NAME = 'Число Эйлера';
final class Interpolator
{
public function __construct(
private string $format = '%s'
) {
}
public function __invoke(mixed $value): string
{
return sprintf($this->format, $value);
}
}
$sprintfString = sprintf(
<<<'JSON'
[
{ "value": "%s", "name": "%s" },
{ "value": "%s", "name": "%s" }
]
JSON,
pi(),
PI_NAME,
M_E,
E_NAME,
);
$intrp = new Interpolator();
$intrpString = <<<JSON
[
{ "value": "{$intrp(pi())}", "name": "{$intrp(PI_NAME)}" },
{ "value": "{$intrp(M_E)}", "name": "{$intrp(E_NAME)}" }
]
JSON;
var_dump(assert($sprintfString === $intrpString));
preferences:
25.35 ms | 407 KiB | 5 Q