is_subclass_of

(PHP 4, PHP 5, PHP 7, PHP 8)

is_subclass_of如果此對(duì)象是該類的子類,則返回 true

說明

is_subclass_of(object $object, string $class_name): bool

如果對(duì)象 object 所屬類是類 class_name 的子類,則返回 true,否則返回 false。

注意:

自 PHP 5.0.3 起也可以用一個(gè)字符串來指定 object 參數(shù)(類名)。

示例 #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";
}
?>

以上例程會(huì)輸出:

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()。

參數(shù)

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 object is 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.

范例

示例 #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";
}
?>

以上例程會(huì)輸出:

yes, $WFC is a subclass of WidgetFactory
no, $WF is not a subclass of WidgetFactory
yes, WidgetFactory_Child is a subclass of WidgetFactory

注釋

注意:

如果此類不是已知類,使用此函數(shù)會(huì)使用任何已注冊(cè)的 autoloader

參見