Question: I am new to learning PHP and recently I was notified on my website about " Call to a member function count() on a non-object " . I don't have the slightest clue on how to fix but I want to learn.

I think I know what's wrong but I need to learn how to fix it so, my website can show up again. Any suggestions?

```
<?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 

```

Answer: 
*(This looks like Magento code - is it?)*

The issue is that this line:

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

```

Is attempting to call the function `count()` on the class / object `$_productCollection`. However, for whatever reason, in this case `$_productCollection` is not set, and therefore the function does not exist.

So, to prevent this issue, you could probably do something as simple as this:

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

```

However - note that Magento is hugely complex, and if you are getting this error, you probably have a completely different problem, and this is just a symptom of that bigger problem.
Breaking down the error:

**Call to a member function count()**

Look for `->count()` (you're using `count` as a function that should be on an object).

**...on a non-object**

The thing you thought was an object (`$_productCollection`) actually isn't an object. So look up higher in the file and figure out *where* `$_productCollection` is supposed to be created, and why it actually isn't.