访问对象属性返回属性名称为$

时间:2015-11-10 12:22:12

标签: php arrays oop

我无法访问对象属性。它应该是直截了当的,但我得到了

  

注意:未定义的属性:myClass :: $ myname:protected in ...

我的对象,当我做print_r时看起来像这样:

myClass Object
(
    [myname:protected] => Array
        (
            [key1] => stdClass Object
                (
                    [slug] => name
                    [name] => Big Name
                )

  .
  .
  .
   [mykey] => stdClass Object
       (...

我试过打印

print_r($this->{'myname:protected'});

看看我是否会把阵列拿出来,从中我可以得到我需要的东西。但我得到了上述错误。

print_r($this);返回我的对象​​,因为我在班级public的{​​{1}}函数(方法)中。

为什么我无法访问该密钥,但是当我执行myClass时,我可以轻松获取print_r($this->mykey->property1)对象的任何属性?

为什么在名称前添加mykey?我知道一些oo php,但我还是初学者。我有一个

$

在文件的开头,我在我的protected $myname; 中使用它

__construct()

注意:我正在尝试修改并弄清楚其他人的代码,所以我并不是100%确定每件作品的用途:\

编辑:

当我这样做时

public function __construct($myname){...}

我得到了我需要的数组。任何人都可以澄清为什么会这样?感谢。

1 个答案:

答案 0 :(得分:1)

成员名称为myname - print_r输出中显示的:protected只是调试信息,表明它是对象的受保护成员。

因此,从类方法中,您可以访问该成员:

$this->myname