Mixpanel объект php - PullRequest
       1

Mixpanel объект php

0 голосов
/ 08 апреля 2011

Вопрос из двух частей: после вызова API Mixpanel мне возвращается что-то вроде этого

stdClass Object ( 
    [legend_size] => 1 
    [data] => stdClass Object ( 
        [series] => Array ( 
            [0] => 2011-04-06 
            [1] => 2011-04-07 ) 
        [values] => stdClass Object ( 
            [Login loaded] => stdClass Object ( 
                [2011-04-06] => 1 
                [2011-04-07] => 1 
            ) 
        ) 
    ) 
)

Допустим, я сохранил это в $ data

Если я сделаю

$value = $data->data->values->Login loaded

Я получаю ошибку из-за пробела между логином и загрузкой.Как мне избежать этого пробела?

Второй вопрос

Как только я разберусь с вышесказанным, могу ли я сделать что-то вроде

$value = $data->data->values->Login->$date

, где

$date = '2011-05-06'

?Могу ли я вставить переменную вместо имени класса?

Спасибо.

1 Ответ

2 голосов
/ 08 апреля 2011

Первый вопрос: $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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...