【问题标题】:how can I read object values and atributes with php?如何使用 php 读取对象值和属性?
【发布时间】:2013-04-10 20:22:59
【问题描述】:

我一直在处理一些代码,我正在接收一个 var(我没有处理整个代码,所以,我不知道它是如何制作的),我的问题是我得到了这样的东西

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->atribute 的方式获得属性,现在我真的不知道,无论如何我可以访问这个吗?例如,我想获取 userId,我在那里看到它,带有 :user:private (我也不知道它们是做什么用的)。

如果我尝试

$myobject->User; 

例如,我一无所获。

谢谢。

编辑:

我试过 $myobject->user

我得到了这个

Fatal error: Cannot access private property AdminUserRoleDecorator

顺便说一下,我正在使用 symfony。

【问题讨论】:

  • 变量名区分大小写。 (但在您的情况下,修复它并不能解决问题 - user 是一个私有变量,无法从外部读取。这是设计使然。)
  • 你试过$myobject->user;吗?
  • 这个类可能有 getter 和 setter。所以$myobject->getUser() 将是你的答案。
  • 你能看看我对帖子的编辑吗?

标签: php object symfony1


【解决方案1】:

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";
    }
}

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多