Php 从作为数组的对象属性访问值
如何从作为数组的对象属性访问值 例如:Php 从作为数组的对象属性访问值,php,arrays,object,properties,Php,Arrays,Object,Properties,如何从作为数组的对象属性访问值 例如: $myObject = new MyClass; $myObject->myproperty = array(1 => 'English', 2 => 'French', 3 => 'German'); 如何使用数组键从$myObject->myProperty获取单个属性值?使用$myObject->myproperty[3]不起作用 编辑:使用$myObject->myproperty[3]实际上是可行的。当我这样做时,我发
$myObject = new MyClass;
$myObject->myproperty = array(1 => 'English', 2 => 'French', 3 => 'German');
如何使用数组键从$myObject->myProperty
获取单个属性值?使用$myObject->myproperty[3]
不起作用
编辑:使用$myObject->myproperty[3]
实际上是可行的。当我这样做时,我发现一个问题:
$myproperty = 'myproperty';
echo $myObject->$myproperty[3]
// result : 'r'
但是,如果我在$myObject->$myproperty上执行var_转储,我会看到我的数组。尝试以下操作:
$myObject->myproperty[3]
$myObject->{$myproperty}[3]
与此相反:
$myObject->$myproperty[3]
试试这个:
$myObject->myproperty[3]
$myObject->{$myproperty}[3]
与此相反:
$myObject->$myproperty[3]
要访问myproperty
数组值,请尝试以下操作:
$myObject->{$myproperty}[3]
而不是:
$myObject->$myproperty[3]
这些变量称为变量,有关更多信息,请访问:
您的echo
结果之所以是r
,是因为您的$myproperty
值是myproperty
,并且您执行了这个echo$myObject->$myproperty[3]
,它转换为您想要第三个字符数组键值。由于数组是基于零的,这意味着您将得到字符r
。希望这能澄清为什么结果是r
要访问myproperty
数组值,请尝试以下操作:
$myObject->{$myproperty}[3]
而不是:
$myObject->$myproperty[3]
这些变量称为变量,有关更多信息,请访问:
您的echo
结果之所以是r
,是因为您的$myproperty
值是myproperty
,并且您执行了这个echo$myObject->$myproperty[3]
,它转换为您想要第三个字符数组键值。由于数组是基于零的,这意味着您将得到字符r
。希望这能澄清为什么您的结果是r
$myObject->$myProperty
将从$myProperty
中获取值并将其用作属性名称。所以如果$myProperty='foo'
,则它将与表示$myObject->foo
相同$myObject->$myProperty
将从$myProperty
中获取值并将其用作属性名称。所以如果$myProperty='foo'
,那么这就等于说$myObject->foo
。当然,我已经回答过,不管这是针对一个可以应用于多个类的行为,因此$myObject->$myProperty本质上是,我已经回答过,不管这是针对一个可以应用于多个类的行为,因此,$myObject->$myProperty本质上是,我明白这正是我得到“r”的原因。你的回答完全正确。我以前也尝试过同样的方法,但由于其他一些逻辑错误,它不起作用。我又试了一次,果然成功了。非常感谢。是的,我明白这正是我得到“r”的原因。你的回答完全正确。我以前也尝试过同样的方法,但由于其他一些逻辑错误,它不起作用。我又试了一次,果然成功了。非常感谢。