Задать вопрос
@Sasha1990

PHP выдает ошибку Fatal error: Cannot redeclare class booksPdf, кто знает в чем проблема?

Задача состоит в том,чтобы с помощью полиморфизма вывести информацию о книгах.

Код прилагаю:
Файл classes.php
include('data.php');

class books
{
    public $id;
    public $name;
    public $author;
    public $file_path;
    public $type;
    public $sort_order;
    
    function __construct($row) 
     {
         $this->id=$row['id'];
         $this->title=$row['name'];
         $this->author=$row['author'];
         $this->file_path=$row['file_path'];
         $this->type=$row['type'];
         $this->sort_order=$row['sort_order'];
          
          
     }
    
    
}



class booksPdf extends books
{
     public function printInfo()
    {
         echo'<br>Книга:'.$this->name;
         echo'<br>Автор:'.$this->author;
         echo'<br>Формат файла:'.$this->type;
    }
    
    
}
 
 

class booksDoc extends books
{
     public function printInfo()
    {
         echo'<br>Книга:'.$this->name;
         echo'<br>Автор:'.$this->author;
         echo'<br>Формат файла:'.$this->type;
    }
    
  
}



class booksTxt extends books
{
    public function printInfo()
    {
         echo'<br>Книга:'.$this->name;
         echo'<br>Автор:'.$this->author;
         echo'<br>Формат файла:'.$this->type;
        
    }
    
    
}


файл data.php
include('classes.php');
 $books[]=array();
 
// $books[]= array();
 
 $con = mysqli_connect("localhost","root","","testsite");

  if(mysqli_connect_errno()) 
  {
      echo "feiled to connect to mysqli  ". mysqli_connect_errno(); 
  }
  
  $result= mysqli_query($con, "SELECT * FROM books");//запрос в таблице
  
  while ($row = mysqli_fetch_array($result)) //шерстим сформированный массив таблицы базы данных
  {
      
      $books[]=new $row['type']($row);//заполняем массив books c помощью конструктора
    
  }
  
  echo '<pre>';
  
  print_r($books);
  
  
  echo '<pre/>';

Файл books.php

include('data.php');

foreach($books as $item)//шерстим массив, который заполнили в файле  data.php
{
    print_r($item->printInfo());//для каждого элемента массива вызываем метод класса
    
}
  • Вопрос задан
  • 310 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
BuriK666
@BuriK666
Компьютерный псих
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы