从作为数组的Object属性访问值

时间:2012-12-25 00:12:00

标签: php arrays object properties

如何从作为数组的对象属性访问值?

例如:

$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,我会看到我的数组。

3 个答案:

答案 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