0

I have a simple script that includes:

  • abstract class
  • regular class
  • and an indes page

for some reason I get this error:

( ! ) Fatal error: Uncaught Error: Class 'Products' not found in 

D:\xampp\htdocs\ds2\classes\GetAllProducts.php on line 4
( ! ) Error: Class 'Products' not found in D:\xampp\htdocs\ds2\classes\GetAllProducts.php on line 4
Call Stack
#   Time    Memory  Function    Location
1   0.4119  410648  {main}( )   ...\index.php:0
2   0.4129  414904  include_once( 'D:\xampp\htdocs\ds2\classes\GetAllProducts.php' )    ...\index.php:3

enter image description here This is my code:

index.php

include_once 'abstract/Products.php';
include_once 'classes/GetAllProducts.php';


$customer = new GetAllProducts();
$customer->allData();

abstract/Products.php

<?

    abstract class Products {
        public $data = array(
            array(
                'id' => 1,
                'title' => 'title 1',
                'desc' => 'desc 1'
            ),
            array(
                'id' => 2,
                'title' => 'title 2',
                'desc' => 'desc 2'
            ),
            array(
                'id' => 3,
                'title' => 'title 3',
                'desc' => 'desc 3'
            )
        );
     
    }

classes/GetAllProducts.php

<?php

class GetAllProducts extends Products {

    public function allData() {
        $this->data;
        foreach($this->data as $product){
            echo '
            <article id="product-'.$product['id'].'" class="product">
                <h2 product__title="">'.$product['id'].'</h2>
                <picture product__image="'.$product['title'].'">
                    <source media="(min-width:768px)" srcset="https://picsum.photos/200/300">
                    <img src="https://picsum.photos/200" alt="Flowers" style="width:auto;">
                </picture>
                <button class="product__button" role="button">לצפיה במוצר</button>
            </article>';
        }
    }
}

2 Answers 2

1

You have to include the abstract class into the GetAllProducts.php file because you are using the abstract class in that file, not in index.php.

<?php
include_once 'abstract/Products.php';

class GetAllProducts extends Products {}
Sign up to request clarification or add additional context in comments.

Comments

0

What solved the issue was that abstract/Products.php file began with <? and not <?php

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.