【问题标题】:Trying to get property of non-object [duplicate]试图获取非对象的属性[重复]
【发布时间】:2025-12-30 22:05:12
【问题描述】:

我在尝试此代码时收到“尝试获取非对象的属性”。

<?php foreach($pages as $page=>$p): ?>
<h2 class="section-title text-center wow fadeInDown"><?php echo $page[0]->title;  ?></h2>
<p class="text-center wow fadeInDown"><?php echo strip_tags(html_entity_decode($page[0]->description)); ?></p>
<?php endforeach; ?>

【问题讨论】:

  • 检查变量的值。使用print_r($pages);
  • 按照@Yash 所说的去做。另外,不是$page[0](它访问当前键中数组的第一个条目,或者如果它是字符串,则获取当前键的第一个字符)你的意思是$p还是$page[ $p ]
  • $pages 的值到底是多少?您需要 print_r($pages) 并检查一下。
  • $page 是当前的key & $p 是值。

标签: php


【解决方案1】:

您需要将变量 $p(值)的变量 $page(它是键)更改为 cicle。

试试这个,也许有帮助,

<?php foreach($pages as $page=>$p): ?>
<h2 class="section-title text-center wow fadeInDown"><?php echo $p->title;  ?></h2>
<p class="text-center wow fadeInDown"><?php echo strip_tags(html_entity_decode($p->description)); ?></p>
<?php endforeach; ?>

【讨论】:

  • 请说明您所做的更改以及它如何解决问题,不要只是转储一堆代码。
【解决方案2】:

使用下面的代码。 这里 $pages 是对象数组,您使用 foreach 来获取数组值,因此在 foreach 中您将在 $p 中获取值,并且您的数组键是 $page。 所以使用 $p 或 $p[$page]。

<?php foreach($pages as $page=>$p): ?>
<h2 class="section-title text-center wow fadeInDown"><?php echo $p->title;  ?></h2>
<p class="text-center wow fadeInDown"><?php echo strip_tags(html_entity_decode($p->description)); ?></p>
<?php endforeach; ?>

【讨论】:

  • 请说明您所做的更改以及它如何解决问题,不要只是转储一堆代码。
  • 使用 $p 而不是 $page[0]。 @Barmar
  • 把它放在答案中,而不是评论中。
  • 为什么是 $p 而不是 $page[0]?
  • 添加了简要说明。 @Sougata
最近更新 更多