リフレクションとは php

リフレクションというのはプログラムの実行中にクラスの情報を読み取ったり書き込んだりする技術のことらしいです。 PHPの公式ドキュメントには

クラス、インターフェイス、関数、メソッド、そして拡張モジュールについて 型やプロパティを実行時に調べることができます。 さらに、このリフレクション API は関数、クラス、メソッドに 関するドキュメントコメントも取得することができます。

と書いてあります。 リフレクションを使うことで指定したクラスのprivate変数やpublic変数を読み取るなどの使いみちがあるようです

class A
{
    public function __construct()
    {
        $this->printPublic();
    }

    protected function printPublic()
    {
        $clazz = new ReflectionClass(static::class);
        foreach ($clazz->getProperties(ReflectionProperty::IS_PUBLIC) as $reflection_property) {
            $prop_name = $reflection_property->getName();
            echo $prop_name;
        }
    }
}

class B extends A
{
    private $id;

    public $name;
    public $price;
    public $weight;
}

このようにすれば3つのpublic変数が出力されます。