致命错误:在非对象上调用成员函数count()

时间:2016-02-09 22:41:32

标签: php

我是学习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 

2 个答案:

答案 0 :(得分:2)

(这看起来像Magento代码 - 是吗?)

问题是这一行:

if(!$_productCollection->count()):

尝试在类/对象count()上调用函数$_productCollection。但是,无论出于何种原因,在这种情况下$_productCollection未设置,因此该函数不存在。

所以,为了防止这个问题,你可以做一些简单的事情:

if ( ! $_productCollection || ! $_productCollection->count()):

然而 - 请注意Magento非常复杂,如果你收到这个错误,你可能会遇到一个完全不同的问题,这只是这个更大问题的症状。

答案 1 :(得分:0)

分解错误:

调用成员函数count()

查找->count()(您使用count作为应该在对象上的函数)。

...在非对象上

你认为是一个对象($_productCollection)实际上并不是一个对象。因此,请在文件中向上查找并找出应该创建 $_productCollection的位置,以及为什么它实际上不是。