Первый вопрос: $value = $data->data->values->{'Login loaded'}
или:
$key = 'Login loaded';
$value = $data->data->values->$key
Второй вопрос: Да
Вы можете в значительной степени использовать что угодно в качестве имени переменной (включая члены объекта), если вы используете переменные переменные, {}
переменные оболочки и т. П.
Например:
$this->$foo
${'a weird variable name'}
$object->$something->{'very weird'}
$foo = 'bar'; $$foo = 3; // $bar = 3 now.
РЕДАКТИРОВАТЬ: Пока мы на этом, этот никогда не действует:
$foo = new Foo;
$foo::bar(); // syntax error
Вы не можете получить доступ к статическим свойствам экземпляра класса, хранящегося в переменной.Тем не менее, вы можете сделать что-то вроде:
$foo = new Foo;
call_user_func(get_class($foo) . '::bar');