PHPで「型宣言された引数の型の名前」を知る方法 - がるの健忘録 の続編。
いやPHP8になって「union typesとか増えたしなぁ」とか思って検証コード書いてみたので、勿体ないんで、忘れる前に(絶対忘れるだろうしw)、記録しておく。
<?php namespace Foo; // class Bar { } // 調査用クラス class Hoge { public function t(\Exception $e, Bar $ar, $s, int|float $i, mixed $m) { } } /* // $ref = new \ReflectionMethod('Hoge', 't'); // $params = $ref->getParameters(); // foreach($params as $p) { echo $p->getType() , "\n"; } */ // 一行にまとめてみるとこんなん foreach(( new \ReflectionMethod('Foo\\Hoge', 't'))->getParameters() as $p) { echo $p->getType() , "\n"; }
結果
Exception
Foo\Barint|float
mixed
ほむ、概ね「すげぇ素直」にかえってくるんだ。
クラスは流石に完全修飾クラス名だけど。