代码之家  ›  专栏  ›  技术社区  ›  Keith Palmer Jr.

在php 5.x中,如何在运行时检测类是否是抽象的?

  •  21
  • Keith Palmer Jr.  · 技术社区  · 15 年前

    我在PHP中循环访问一个类名数组,通过get_-declared_classes()获取。

    如何检查每个类名以检测特定类是否为抽象类?

    4 回复  |  直到 13 年前
        1
  •  36
  •   benizi vartec    13 年前

    使用反射。 ReflectionClass ->isAbstract()

    这样使用:

    $class = new ReflectionClass('NameOfTheClass');
    $abstract = $class->isAbstract();
    
        2
  •  4
  •   jonstjohn    15 年前

    你可以使用 Reflection 在课堂上。

        3
  •  4
  •   MrHus    15 年前
    <?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
  •  -1
  •   Seb    15 年前

    如果您需要在运行时检查这个,我建议您重新评估您的应用程序体系结构。

    除非您正在构建一个极其复杂的应用程序来检查不能更改的其他代码,否则您不应该尝试这样做。