我是学习PHP的新手,最近我在网站上收到了关于"在非对象上调用成员函数count()" 。我对如何修复没有任何线索,但我想学习。
我想我知道什么是错的,但我需要学习如何修复它,我的网站可以再次出现。有什么建议吗?
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the
selection.') ?></p>
<?php else: ?>
<div class="category-products">
<?php echo $this->getToolbarHtml() ?>
<?php // List mode ?>
<div class="sns-products-container clearfix">
<?php if($this->getMode()!='grid'): ?>
<?php $_iterator = 0; ?>
<ol class="products-list clearfix" id="products-list">
<?php foreach ($_productCollection as $_product): ?>
<?php
答案 0 :(得分:2)
(这看起来像Magento代码 - 是吗?)
问题是这一行:
if(!$_productCollection->count()):
尝试在类/对象count()
上调用函数$_productCollection
。但是,无论出于何种原因,在这种情况下$_productCollection
未设置,因此该函数不存在。
所以,为了防止这个问题,你可以做一些简单的事情:
if ( ! $_productCollection || ! $_productCollection->count()):
然而 - 请注意Magento非常复杂,如果你收到这个错误,你可能会遇到一个完全不同的问题,这只是这个更大问题的症状。
答案 1 :(得分:0)
分解错误:
调用成员函数count()
查找->count()
(您使用count
作为应该在对象上的函数)。
...在非对象上
你认为是一个对象($_productCollection
)实际上并不是一个对象。因此,请在文件中向上查找并找出应该创建 $_productCollection
的位置,以及为什么它实际上不是。