对象名称上的特殊符号不允许我在php中浏览对象/数组



现在,我正在使用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方法。

最新更新