is_subclass_of
(PHP 4, PHP 5, PHP 7)
is_subclass_of — 如果此对象是该类的子类,则返回 TRUE
说明
$object
   , string $class_name
   ) : bool
   如果对象 object
   所属类是类 class_name
   的子类,则返回 TRUE,否则返回 FALSE。
  
Note:
自 PHP 5.0.3 起也可以用一个字符串来指定
object参数(类名)。
Example #1 is_subclass_of() 例子
<?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 "yes, \$WFC is a subclass of WidgetFactory\n";
} else {
  echo "no, \$WFC is not a subclass of WidgetFactory\n";
}
if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "yes, \$WF is a subclass of WidgetFactory\n";
} else {
  echo "no, \$WF is not a subclass of WidgetFactory\n";
}
// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
  echo "no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}
?>
以上例程会输出:
yes, $WFC is a subclass of WidgetFactory no, $WF is not a subclass of WidgetFactory yes, WidgetFactory_Child is a subclass of WidgetFactory
参见 get_class()、 get_parent_class() 和 is_a()。
参数
- 
object
- 
      A class name or an object instance 
- 
class_name
- 
      The class name 
- 
allow_string
- 
      If this parameter set to false, string class name as objectis not allowed. This also prevents from calling autoloader if the class doesn't exist.
返回值
   This function returns TRUE if the object object,
   belongs to a class which is a subclass of 
   class_name, FALSE otherwise.
  
更新日志
| 版本 | 说明 | 
|---|---|
| 5.3.9 | Added allow_stringparameter | 
| 5.0.3 | You may also specify the objectparameter as a
        string (the name of the class) | 
范例
Example #2 is_subclass_of() example
<?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 "yes, $WFC is a subclass of WidgetFactory\n";
} else {
  echo "no, $WFC is not a subclass of WidgetFactory\n";
}
if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "yes, $WF is a subclass of WidgetFactory\n";
} else {
  echo "no, $WF is not a subclass of WidgetFactory\n";
}
// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
  echo "no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}
?>
以上例程会输出:
yes, $WFC is a subclass of WidgetFactory no, $WF is not a subclass of WidgetFactory yes, WidgetFactory_Child is a subclass of WidgetFactory
注释
Note:
如果此类不是已知类,使用此函数会使用任何已注册的 autoloader。
参见
- get_class() - 返回对象的类名
- get_parent_class() - 返回对象或类的父类名
- is_a() - 如果对象属于该类或该类是此对象的父类则返回 TRUE
- class_parents() - 返回指定类的父类。