PHP のプライベート変数を動的に参照したい

<?php
class Hoge {

    CONST CIRCLE   = 1;
    CONST TRIANGLE = 2;
    CONST BOX      = 3;

    private $_fuga = array(
        self::CIRCLE   => '',
        self::TRIANGLE => '三角',
        self::BOX      => '四角',
    );

    public function getMemberVariable($type, $key = null)
    {
        $array = $this->{'_' . "$type"}; // こういう書き方でいいみたいだ。
        if (null === $key) {
            return $array;
        }
        return array_get($array, $key, '');
    }
}

function array_get($array, $key, $default = null)
{
    return is_array($array) && array_key_exists($key, $array) ? $array[$key] : $default;
}

$hoge = new Hoge();
var_dump($hoge->getMemberVariable('fuga'));
var_dump($hoge->getMemberVariable('fuga', Hoge::CIRCLE));

array(3) {
  [1]=>
  string(3) ""
  [2]=>
  string(6) "三角"
  [3]=>
  string(6) "四角"
}
string(3) ""

表題のとおりのことがしたかった。
ただ、getMemberVariable という名前は明らかに間違ってるなー。
なんだろうなー。。