Неустранимая ошибка: класс 'conn' не найден, когда он там - PullRequest
0 голосов
/ 19 января 2020

Я новичок в OOP php, может кто-нибудь объяснить, в чем проблема:

include / autoloader.in c. php:

<?php
spl_autoload_register('autoloader');
function autoloader($class) {
  $path = "class/";
  $extension = ".class.php";
  $fullPath = $path . $class . $extension;
  if (!file_exists($fullPath))
    return false;
  include_once $fullPath;
}
?>

затем index. php:

<?php
include 'include/autoloader.inc.php';
$conn = new conn();
// $user = new user();
?>

и class / user.class. php:

class conn {}
class user extends conn {}

Я пытался выполнить get_declared_classes ():
- раньше объявляя $ conn или $ users, классы conn и users не перечислены.
- Если я объявлю $ conn, я получу фатальную ошибку из topi c.
- Если я ТОЛЬКО объявляю $ users и выполняю get_declared_classes (), оба класса перечислены.

1 Ответ

0 голосов
/ 19 января 2020

Когда вы объявляете нового пользователя (), оба класса перечисляются, потому что ваш файл автозагрузчика включает в себя только пользовательский класс, а не класс conn. Так написан ваш класс автозагрузчика.

Может быть, вы можете создать отдельные файлы для своих классов и загрузить их таким образом!

...