PHP is_subclass_of 类/对象函数

  • 定义和用法

    is_subclass_of - 如果此对象是该类的子类,则返回 TRUE
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
    v5.3.9 添加 allow_string 参数
    v5.0.3 您还可以将对象参数指定为字符串(类的名称)
  • 语法

    is_subclass_of ( object $object , string $class_name  [, bool $allow_string = FALSE ] )   
    
    如果对象 object 所属类是类 class_name 的子类,则返回 TRUE,否则返回 FALSE。
    自 PHP 5.0.3 起也可以用一个字符串来指定 object 参数(类名)。
  • 参数

    参数 必需的 描述
    object 类名或对象实例
    class_name 类名。
    allow_string 如果此参数设置为FALSE,则不允许将字符串类名称作为对象。 如果该类不存在,这也可以防止调用自动加载器。
  • 返回值

    如果对象对象属于class_name的子类,则此函数返回TRUE,否则返回FALSE。
  • 示例

    <?php
    // define a class
    class WidgetFactory
    {
            var $oink = 'moo';
    }
    
    // define a child class
    class WidgetFactory_Child extends WidgetFactory
    {
            var $oink = 'oink';
    }
    
    // create a new object
    $WF = new WidgetFactory();
    $WFC = new WidgetFactory_Child();
    
    if (is_subclass_of($WFC, 'WidgetFactory')) {
            echo "\$WFC 是 WidgetFactory 的一个子类<br/>";
    } else {
            echo "\$WFC 不是 WidgetFactory 的子类<br/>";
    }
    
    if (is_subclass_of($WF, 'WidgetFactory')) {
            echo "\$WF 是 WidgetFactory 的子类<br/>";
    } else {
            echo "\$WF 不是 WidgetFactory 的子类<br/>";
    }
    
    // usable only since PHP 5.0.3
    if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
            echo "WidgetFactory_Child 是 WidgetFactory子类。<br/>";
    } else {
            echo "WidgetFactory_Child 不是 WidgetFactory的子类。<br/>";
    }
    ?>
    
    尝试一下
  • 相关函数

    get_class() - 返回对象的类名
    get_parent_class() - 返回对象或类的父类名
    is_a() - 如果对象属于该类或该类是此对象的父类则返回 TRUE
    class_parents() - 返回指定类的父类。