Подтвердить что ты не робот

В PHP 5.x, как я могу определить, является ли класс абстрактным или нет во время выполнения?

Я перебираю массив имен классов в PHP, извлекаемый через get_declared_classes().

Как я могу проверить каждое имя класса, чтобы определить, является ли этот конкретный класс абстрактным классом или нет?

4b9b3361

Ответ 1

Используйте отражение. ReflectionClass ->isAbstract()

Используйте его следующим образом:

$class = new ReflectionClass('NameOfTheClass');
$abstract = $class->isAbstract();

Ответ 2

Вы можете использовать Reflection в классе.

Ответ 3

<?php 

abstract class Picasso
{
    public function __construct()
    {

    }
} 

$class = new ReflectionClass('Picasso');

if($class->isAbstract())
{
    echo "Im abstract";
}
else
{
    echo "Im not abstract";
}

?>

См. руководство: www.php.net/oop5.reflection

Ответ 4

Если вам нужно проверить это во время выполнения, я бы предложил вам переоценить архитектуру вашего приложения.

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