Неустранимая ошибка: абстрактный класс не найден в другом классе

У меня есть абстрактный класс ‘AbstractClassA’:

abstract class AbstractClassA {
//some code...
public static function isValidID($id) { ... }
}

И еще один абстрактный класс:

abstract class AbstractClassB extends AbstractClassA {
const id = 1111;
}

Затем, когда я объявляю следующее в третьем классе:

class OrdinaryClass {
public static function canDoIt($id) {
return AbstractClassB::isValidID($id);
}
}

Затем я получаю следующую ошибку при проверке следующего:

OrdinaryClass::canDoIt(1111);

«Неустранимая ошибка: необработанная ошибка: класс« AbstractClassB »не найден в OrdinaryClass.class.php в строке ##»

Что я делаю неправильно?

-1

Решение

При наличии файлов в разных файлах, вы должны require сначала их перед использованием:

<?php

require_once "/path/to/AbstractClassA.php";
require_once "/path/to/AbstractClassB.php";

class OrdinaryClass {
public static function canDoIt($id) {
return AbstractClassB::isValidID($id);
}
}

Есть возможность зарегистрироваться автопогрузчик для этого нужно сделать автоматически.

// autoloader.php

spl_autoload_register(function ($className) {
include __DIR__ . '/' . $className . '.php';
});

// OrdinaryClass.php
require 'autoloader.php';

class OrdinaryClass {
/* ... */
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector