如何从作为数组的对象属性访问值?
例如:
$myObject = new MyClass;
$myObject->myproperty = array(1 => 'English', 2 => 'French', 3 => 'German');
如何使用$myObject->mypropery
中的数组键获取单个属性值?使用$myObject->myproperty[3]
不起作用。
编辑:使用$myObject->myproperty[3]
确实有效。我发现问题的地方就是这样:
$myproperty = 'myproperty';
echo $myObject->$myproperty[3]
// result : 'r'
然而,如果我在$myObject->$myproperty
上执行var_dump,我会看到我的数组。
答案 0 :(得分:1)
试试这个:
$myObject->myproperty[3]
而不是:
$myObject->$myproperty[3]
答案 1 :(得分:0)
$tmp = $myObject->$myproperty;
echo $tmp[1];
//or
echo $myObject->{$myproperty}[1];
答案 2 :(得分:0)
要访问myproperty
数组值,请尝试以下操作:
$myObject->{$myproperty}[3]
而不是:
$myObject->$myproperty[3]
这些被称为变量变量,有关详细信息,请访问:http://php.net/manual/en/language.variables.variable.php
echo
结果为r
的原因是因为您的$mypropery
值为mypropery
并且您执行了此echo $myObject->$myproperty[3]
,这表示您想要第三个字符数组键值。由于数组基于零,这意味着您将获得字符r
作为结果。希望这可以解释为什么你的结果是r
。