3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types = 1); /** * @template TReturn * @param Closure(): TReturn $closure * @param 'static'|class-string|object $newScope * @return Closure(): TReturn */ function bind(Closure $closure, string|object $newScope = 'static'): Closure { /** @var ?Closure(): TReturn */ $boundClosure = $closure->bindTo(null, $newScope); assert($boundClosure !== null, 'Failed to bind closure.'); return $boundClosure; } final class Vault { public function __construct( private readonly string $secret, ) { } } $vault = new Vault('https://disk.yandex.ru/i/OG-9MXrogsS05g'); $secretAccessor = bind(static fn (): string => $vault->secret, $vault); $secret = $secretAccessor(); var_dump($secret);
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.5 - 8.3.25, 8.4.1 - 8.4.12
string(39) "https://disk.yandex.ru/i/OG-9MXrogsS05g"
Output for 8.0.1 - 8.0.28
Parse error: syntax error, unexpected identifier "string", expecting variable in /in/K1LUG on line 24
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /in/K1LUG on line 11
Process exited with code 255.

preferences:
73.1 ms | 408 KiB | 5 Q