2

このコードをより効率的/動的にするにはどうすればよいので、より多くの引数を渡す必要がある場合は動的になりますか?

この時点では少しごちゃごちゃしていて、コードがクリーンでシンプルなのが気に入っています:)

protected function getSettings()
{
    $args = func_get_args();
    switch (func_num_args()) {
        case 1:
            $set =  (isset($this->settings[ $args[0] ]))
                    ? $this->settings[ $args[0] ]
                    : array();
            break;
        case 2:
            $set =  (isset($this->settings[ $args[0] ][ $args[1] ]))
                    ? $this->settings[ $args[0] ][ $args[1] ]
                    : array();
            break;
        case 3:
            $set =  (isset($this->settings[ $args[0] ][ $args[1] ][ $args[2] ]))
                    ? $this->settings[ $args[0] ][ $args[1] ][ $args[2] ]
                    : array();
            break;
        case 4:
            $set =  (isset($this->settings[ $args[0] ][ $args[1] ][ $args[2] ][ $args[3] ]))
                    ? $this->settings[ $args[0] ][ $args[1] ][ $args[2] ][ $args[3] ]
                    : array();
            break;
        case 5:
            $set =  (isset($this->settings[ $args[0] ][ $args[1] ][ $args[2] ][ $args[3] ][ $args[4] ]))
                    ? $this->settings[ $args[0] ][ $args[1] ][ $args[2] ][ $args[3] ][ $args[4] ]
                    : array();
            break;

        default:
            $set = $this->settings;
            break;
    }

    return $set;
}
4

1 に答える 1