Я пытаюсь выяснить, как могут константы IS_IMPLICIT_ABSTRACT
а также IS_EXPLICIT_ABSTRACT
ReflectionClass будет использоваться (если это вообще возможно), чтобы сделать ReflectionClass::isAbstract()
возвращать true только тогда, когда класс является абстрактным из-за его определения NOT, потому что он содержит абстрактные методы.
По умолчанию, при использовании с интерфейсом, этот метод возвращает true, и я хотел бы знать, есть ли способ изменить это поведение, используя эти две предопределенные константы.
Примером будет:
interface BookInterface {
public function getTitle();
public function getAuthors();
public function getYear();
public function getIsbn();
}
$book = new ReflectionClass('BookInterface');
$book->isAbstract() // returns true
очевидно ReflectionClass::isAbstract()
не принимает никаких аргументов — поэтому не совсем уверен, если это возможно.
Задача ещё не решена.
Других решений пока нет …