3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * @template T */ class myInvokable { /** @var T */ private $e; /** @param T $e */ public function __construct($e) { $this->e = $e; } /** * @template B * @param callable(T): B $p * @return B */ public function __invoke($p) { return $p($this->e); } } /** * @template T * @psalm-param T $e * @return myInvokable<T> */ function foo($e): callable { return new myInvokable($e); } $_z = foo('foo')(fn (string $a) => strlen($a)); /** @psalm-trace $_z */; var_dump($_z);
Output for git.master, git.master_jit, rfc.property-hooks
int(3)

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
58.56 ms | 405 KiB | 5 Q