1

现在,我使用drupal 来制作网站。我正在修改 drupals 用户模块,因为我需要为个人资料页面制作自定义布局。

不幸的是,我在通过阵列访问时遇到了问题。

配置文件的所有数据都在一个数组中($user_profile)

阵列只是巨大的。我试图通过对象导航。

虽然我在导航方面做得很好(感谢 print_r 功能),但我现在面临一个问题。

有一个名为 entityInfo:protected 的对象。在这个对象内部有更多的对象(例如,我试图访问这个对象内部的对象,称为标签。

问题是,如果我尝试这样做:

echo $user_profile['profile_medico']['view']['profile2']['2']['field_tags']['#object']->{'entityInfo:protected'}->label 

我收到下一条消息

注意:未定义的属性:Profile::$entityInfo:protected in include()(D:\xampp\htdocs\specialdr\modules\user\user-profile.tpl.php 的第 55 行)。注意:试图在 include() 中获取非对象的属性(D:\xampp\htdocs\specialdr\modules\user\user-profile.tpl.php 的第 55 行)。

我不知道我怎样才能正确地写这个,所以我可以访问这个对象并继续通过数组和对象......因为我还有很长的路要走,直到我到达我需要访问的对象。

顺便说一句...如果您想查看数组... http://fancomix.net/bigarray.txt

提前致谢。

4

1 回答 1

0

很简单->entityInfo:protected不需要,它是访问修饰符或可见性修饰符。它仅显示在 中var_dump()以提供有关该属性的信息。在 PHP 中,可以将对象属性(以及方法)声明为 public、protected 或 private。您可以在手册中阅读有关可见性的更多信息。

protected意味着只能从对象方法访问该属性 - 没有外部访问,因此您将无法获取该属性。不过,Profile该类可以有一个 getter 方法 - 您应该检查该类的定义以找到它,或者如果可以的话进行必要的更改,例如将其更改为public或编写一个 getter 方法。

于 2012-09-19T10:43:13.183 回答