Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从作为数组的对象属性访问值_Php_Arrays_Object_Properties - Fatal编程技术网

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”的原因。你的回答完全正确。我以前也尝试过同样的方法,但由于其他一些逻辑错误,它不起作用。我又试了一次,果然成功了。非常感谢。