Имеется следующий объект (поля могут меняться):
object(stdClass)[6]
public 'database_driver' => string 'pdo_mysql' (length=9)
public 'database_host' => string '127.0.0.1' (length=9)
public 'database_port' => int 3306
public 'database_name' => string 'default' (length=7)
public 'database_user' => string 'root' (length=4)
public 'test' =>
object(stdClass)[7]
public 'hello' => string 'world' (length=5)
И код:
public function get($parameter)
{
return $this->config->$parameter;
}
Если я передам в функцию просто переменную без "вложенности" ('database_driver'
), то всё ок, если передам 'test'
, то тоже ок (вернётся вложенный объект), но если я передам 'test->hello'
или 'test.hello'
, то получаю null
, хотя хотелось бы увидеть 'world'
. Как правильно обратиться к полю hello
?
P.s. забыл уточнить, что объект указанный выше находится в $this->config
Не проверял, но скорей всего сработает такой метод:
public function get($parameter)
{
$methods = explode('->', $parameter);
return array_reduce($methods, function ($carry , $item) {
return $carry->$item;
}, $this->config);
}
соответственно нужно помнить, что ошибки в переданной строке могут привести к исключениям
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не могу уже 3-й день настроить модуль и корректно запуститься, помогите пожалуйста с решением проблемы
Я хочу обработать условие, если вдруг на сайте когда либо будет ссылка вида: