- var_dump: documentation ( source)
<?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);