1

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

当我

print_r($definition);

我明白了

Array ( [0] => 定义对象 ( [extendedText] => [text] => 鼬科的几种食肉穴居哺乳动物中的任何一种,例如欧亚大陆的 Meles meles 或北美的 Taxidea taxus,腿短,爪子长在前脚上,还有一件厚重的灰白大衣。[source] => [sourceDictionary] => ahd-legacy [citations] => Array ( ) [labels] => Array ( ) [score] => 0 [exampleUses] = > Array ( ) [attributionUrl] => [seqString] => [attributionText] => 来自 The American Heritage® Dictionary of the English Language, 4th Edition [relatedWords] => Array ( ) [sequence] => 0 [word] = > 獾 [textProns] => 数组 () [notes] => 数组 () [partOfSpeech] => 名词))

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

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

我迷路了...

4

1 回答 1

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");
}

?>

所以在这个例子(和你的例子)中,我们没有将变量articles 设置为一个对象,而是将数组的索引设置为一个对象。

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

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

因此,通过您的 vardump,我们可以看到它与该对象的索引 0 相关联。

讨厌它为什么这样做。

但是,您可以这样做以删除它:

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

echo $definition->text;
?>
于 2012-04-17T23:11:38.370 回答