我在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'] ....
我迷路了......
答案 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;
?>