这是非常基本的,我完全不知道为什么它不起作用。我有一个名为$elements
的数组,我想要回显其中一个值。
我使用NetBeans作为IDE,如果我用它来检查有问题的多维数组的内容,它看起来像这样:
据我所知,一切看起来都很正常。它是一个多维数组,第一级编号为“0”,第二级编号为四个。
我只想回应“参数”的值,这是一个字符串。
但是,此代码不输出任何内容:
echo "This is the value of 'parameters': " . $elements[0]['parameters'];
我是否以某种方式弄错了这个最基本的代码?
如果我var_dump($elements)
这就是我得到的:
array(1){[0] => object(Element)#3(4){[“type”:“Element”:private] => string(4)“Text”[“resource”:“Element”:private] => string(1)“0” [ “参数”: “元素”:私人] => string(209)“IP1 111.111.111.111 IP2 222.222.222.222 IP3 333.333.333.333 IP4 444.444.444.444 IP5 555.555.555.555 IP6 666.666.666.666 IP7 777.777.777.777 IP8 888.888.888.888 IP9 999.999.999.999 IP10 111.111.111.112“[”parent“:”Element“:private] => NULL}}
...这是print_r($elements)
的输出:
Array ( [0] => Element Object ( [type:Element:private] => Text [resource:Element:private] => 0 [parameters:Element:private] => IP1 111.111.111.111 IP2 222.222.222.222 IP3 333.333.333.333 IP4 444.444.444.444 IP5 555.555.555.555 IP6 666.666.666.666 IP7 777.777.777.777 IP8 888.888.888.888 IP9 999.999.999.999 IP10 111.111.111.112 [parent:Element:private] => ) )
答案 0 :(得分:2)
你的var转储说元素0是一个对象,所以你需要像这样访问它:
echo $elements[0]->parameters;
问题在于,从您的转储中,parameters
元素被标记为私有,因此您将无法访问它。
解决方案是:
parameters
更改为公开getParameters()
)并使用该方法获取参数。答案 1 :(得分:1)
$elements
处的条目0不仅仅是属性数组,而是一个类Element
实例,因此为了访问其属性,请执行以下操作:
echo( $elements[ 0 ]->parameters );
虽然parameters
字段看起来是私有的,但您最好为getParameters()
这样的对象添加一个访问器方法,该方法是公共的并返回参数值。