I am trying to create a function (unless one already exists?) which is supposed to accept an "unlimited" amount of arguments (using func_get_args()) to find the value of an array key. Regardless of how deep within the array it is to be found.
Say if I would use $registry->getSetting( 'template', 'default' ); I am supposed to get the value of $this->properties['settings']['template']['default'] or if I would you $registry->getSetting( 'users', 1, 'name', 'first' ); I would expect it to return the value of $this->properties['users'][1]['name']['first'] (just a second example with a couple of extra arguments).
Now, to do something like this, I could count the amount of arguments passed using func_num_args() and then do a switch with different cases. Although, this would limit it to a certain amount of keys.
So I am asking you if there is a way of doing this, to allow an "unlimited" amount rather than a fixed amount of arguments to access a deeper key of an array.
<?PHP class Registry { // Values are actually fetched from a config file, but for easier understanding private $properties = array( 'settings' => array( 'template' => array( 'default' => 'default', 'caching' => TRUE ) ) ); public function getSetting( ) { // do something like // return $this->properties['settings'][func_get_args( )]; } } ?> Any help whatsoever is highly appreciated.
Thank you!