2013-04-10 2 views
0

Ive работает с некоторым кодом, и я ПОЛУЧАТЬ вар (я не работаю весь код, поэтому я не знаю, как это было сделано), моя проблема в том, что я получаю что-то вроде этогоКак я могу читать значения объектов и атрибуты с помощью php?

AdminUserRoleDecorator Object (
    [user:AdminUserRoleDecorator:private] => EssUserRoleDecorator Object (
     [user:EssUserRoleDecorator:private] => User Object (
      [topMenuItemsArray:User:private] => Array () 
      [employeeList:User:private] => Array () 
      [activeProjectList:User:private] => Array () 
      [empNumber:User:private] => [allowedActions:User:private] => Array () 
      [nextState:User:private] => [userId:User:private] => 1 
      [userTimeZoneOffset:User:private] => -6 

К быть честным, и это может звучать как очень глупый вопрос, я не знаю, как читать это, обычно я получаю атрибуты в способе $ myobject-> атрибут, теперь это я действительно не знаю, каким-либо образом я могу получить доступ к этому ? например, я хочу получить userId, я вижу его там, с: user: private (что я также не знаю, для чего они).

Если я пытаюсь

$myobject->User; 

, например, я ничего не получаю обратно.

Спасибо.

EDIT:

Я попытался $ myobject-> Пользователь

и я получаю эту

Fatal error: Cannot access private property AdminUserRoleDecorator 

Я работаю с Symfony, кстати.

+1

Имена переменных с учетом регистра. (Но в вашем случае исправление, которое не устранит проблему - 'user' является частной переменной, которая не может быть прочитана извне. Это по дизайну.) –

+0

вы пробовали' $ myobject-> user; ' ? – Ejaz

+0

Вероятно, theres получатели и сеттеры этого класса. Поэтому 'myobject-> getUser()' будет вашим ответом. –

ответ

0

From the answer I gave here, вы можете получить представление о объектах с get_class_methods() (php reference) и get_class_vars(). На этом посту я воспользовался функцией, чтобы помочь мне узнать больше о доступных методах класса:

show_methods($playlistListFeed); 

function show_methods($_a) { 
    echo "<h3>Methods for ".get_class($_a)."</h3>"; 
    $_a= get_class_methods($_a); 
    $_a=array_unique($_a); 
    array_multisort(&$_a); 
    $i=0; 
    foreach($_a as $method) { 
     $i++; 
     printf("%-30.30s",$method); 
     if($i%5==0) 
      echo "\n"; 
    } 
}