在PHP中访问对象的部分

时间:2012-04-17 23:09:45

标签: php

我在PHP中有一个名为$ definition的对象。

当我

print_r($definition);

我得到了

  

Array([0] =>定义对象([extendedText] => [text] => Mustelidae家族的几种食肉穴居哺乳动物中的任何一种,如欧亚大陆的Meles meles或北美洲的Taxidea taxus,有短腿,前脚有长爪,还有厚重的灰色外套。[source] => [sourceDictionary] => ahd-legacy [citations] => Array()[labels] => Array() [score] => 0 [exampleUses] =>数组()[attributionUrl] => [seqString] => [attributionText] =>来自美国遗产®英语词典,第4版[relatedWords] => Array()[sequence] => 0 [word] => badger [textProns] => Array()[notes] => Array()[partOfSpeech] =>名词))

如何打印出“text”和“partOfSpeech”组件?

我尝试过$ definition-> text,$ definition [0] ['text'],$ definition ['text'] ....

我迷路了......

1 个答案:

答案 0 :(得分:5)

尝试:

echo $definition[0]->text;

echo $definition[0]->partOfSpeech;

它创建了对象作为数组的第一个索引:)

编辑: 使用PHP,您实际上可以在数组中存储多个对象。这很酷,因为为了论证而不是传递大量的文章,你可以做一些非常棒的事情:

<?php
$articles = array();

for($i = 0; $i < 10; $i ++)
{
  $articles[$i] = new Article("Article $i", "Hello, this is $i");
}

?>

所以在这个例子中(以及在你的例子中)不是将变量文章设置为对象,而是将数组的索引设置为对象。

因此,如果我们想要提取第3篇文章,我们会这样做:

<?php
  echo $articles[2]; // remember arrays start at 0 ;)
?>

因此,使用你的vardump,我们可以看到它与该对象的索引相关联。

为什么这样做而烦恼。

你可以这样做但是放弃它:

<?php
$definition = array_pop( $definition[0] );

echo $definition->text;
?>