我无法访问对象属性。它应该是直截了当的,但我得到了
注意:未定义的属性: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){...}
我得到了我需要的数组。任何人都可以澄清为什么会这样?感谢。
答案 0 :(得分:1)
成员名称为myname
- print_r输出中显示的:protected
只是调试信息,表明它是对象的受保护成员。
因此,从类方法中,您可以访问该成员:
$this->myname