Ответ 1
Используйте отражение. ReflectionClass
->isAbstract()
Используйте его следующим образом:
$class = new ReflectionClass('NameOfTheClass');
$abstract = $class->isAbstract();
Я перебираю массив имен классов в PHP, извлекаемый через get_declared_classes().
Как я могу проверить каждое имя класса, чтобы определить, является ли этот конкретный класс абстрактным классом или нет?
Используйте отражение. ReflectionClass
->isAbstract()
Используйте его следующим образом:
$class = new ReflectionClass('NameOfTheClass');
$abstract = $class->isAbstract();
Вы можете использовать Reflection в классе.
<?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
Если вам нужно проверить это во время выполнения, я бы предложил вам переоценить архитектуру вашего приложения.
Вы никогда не должны пытаться это сделать, если вы не создаете чрезвычайно сложное приложение для проверки другого кода, который вы не можете изменить.