PHP: нельзя использовать наследование. Он не найдет класс

Я дошел до шапки про наследование, но не могу их использовать, даже когда пытаюсь использовать примеры из книги, которую изучаю. Несмотря на то, что все файлы находятся в одной папке, ошибка:

«Неустранимая ошибка: класс« мать »не найден в C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\Learning\classes\son.php в строке 2»

Позвольте мне показать пример, который я создал, чтобы объяснить.

ФАЙЛ: mother.php:

    <?php
    class mother
    {
       public $word= "Hello!!!";

       function printWord()
       {
         echo $word;   
       }
     }
     ?>

ФАЙЛ: son.php:

<?php 
  class son extends mother
   {
     function printWord()
     {
      parent::printWord();
     }
   }  
?>

ФАЙЛ: test.php:

<?php
include 'son.php';
$test = new son();
$test->printWord();
?>

Результат:

ОШИБКА: Неустранимая ошибка: класс «мать» не найден в C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\Learning\classes\son.php в строке 2

Почему это происходит? Почему он не находит класс, если он находится в той же папке?!


person Fernando Anael Cabral    schedule 13.03.2016    source источник
comment
Вместо того, чтобы пытаться запрашивать каждый файл самостоятельно, я предлагаю прочитать PHP и автозагрузка.   -  person kero    schedule 14.03.2016


Ответы (1)


Вам также нужно включить mother.php. В противном случае он не может найти класс, как указано в ошибке.

Наивный пример:

test.php

<?php
include 'mother.php'
include 'son.php';
$test = new son();
$test->printWord();
?>

Но есть и лучший способ

сын.php

<?php 
  require_once 'mother.php'
  class son extends mother
   {
     function printWord()
     {
      parent::printWord();
     }
   }  
?>
person manniL    schedule 13.03.2016
comment
Спасибо за ответ. Ошибка по-прежнему возникает при использовании обоих ваших решений. Это какая-то конфигурация на моем локальном сервере, которая может быть неправильной? Потому что даже когда я пробую примеры из моей книги, выскакивает эта ошибка. - person Fernando Anael Cabral; 14.03.2016
comment
@FernandoAnaelCabral Хорошо. Не могли бы вы предоставить больше информации и текущий код? - person manniL; 14.03.2016