3v4l.org

run code in 300+ PHP versions simultaneously
<?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