3v4l.org

run code in 500+ PHP versions simultaneously
<?php declare(strict_types = 1); trait Help { public function attachTag( string $type = self::class ): void { var_dump($type); } } $ref = new \ReflectionClass(Help::class); $parameters = $ref->getMethod('attachTag')->getParameters(); foreach ($parameters as $p) { var_dump($p->getName()); var_dump($p->getDefaultValue()); } class HelloWorld { use Help; public function sayHello(DateTimeImutable $date): void { $this->attachTag(); } } var_dump('-------'); $ref = new \ReflectionClass(HelloWorld::class); $parameters = $ref->getMethod('attachTag')->getParameters(); foreach ($parameters as $p) { var_dump($p->getName()); var_dump($p->getDefaultValue()); }
Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
string(4) "type" string(4) "Help" string(7) "-------" string(4) "type" string(10) "HelloWorld"

preferences:
71.78 ms | 1503 KiB | 4 Q