现在,我正在使用drupal制作一个网站。我正在修改drupals用户模块,因为我需要为配置文件页面定制布局。
不幸的是,我在通过阵列访问时遇到了问题。
配置文件的所有数据都在一个数组($user_profile)上
阵列非常庞大。我正试着浏览这些物体。
虽然我在导航方面做得很好(多亏了print_r函数),但我现在面临着一个问题。
有一个名为entityInfo:protected的对象。在这个对象内部有更多的对象(例如,我试图访问这个对象内部的对象,称为label.
问题是,如果我尝试这样做:
echo $user_profile['profile_medico']['view']['profile2']['2']['field_tags']['#object']->{'entityInfo:protected'}->label
我收到下一条信息
注意:未定义的属性:Profile::$entityInfo:protected in include()(D:\examplep\htdocs\specialdr\modules\user\user Profile.tpl.php的第55行)。注意:正在尝试获取include()中非对象的属性(D:\examplep\htdocs\specialdr\modules\user\user profile.tpl.php的第55行)。
我不知道如何正确地写这篇文章,这样我就可以访问这个对象,并继续遍历数组和对象。。。因为在找到需要访问的对象之前,我还有很长的路要走。
顺便说一下。。。如果你想看阵列。。。http://fancomix.net/bigarray.txt
提前谢谢。
它只是->entityInfo
,不需要:protected
,它是访问修饰符或可见性修饰符。它仅显示在var_dump()
中,以提供有关属性的信息。对象属性(和方法)可以在PHP中声明为public、protected或private。您可以在手册中阅读有关可见性的详细信息。
protected
意味着只能从对象方法访问该属性,不能进行外部访问,因此无法获取该属性。不过,Profile
类可以有一个getter方法——您应该检查该类的定义来找到它,或者如果可以的话,进行必要的更改,比如将其更改为public
或编写getter方法。