がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

PHPで「型宣言された引数の型の名前」を知る方法 続編

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\Bar

int|float
mixed

ほむ、概ね「すげぇ素直」にかえってくるんだ。
クラスは流石に完全修飾クラス名だけど。