is_subclass_of
(PHP 4, PHP 5, PHP 7, PHP 8)
is_subclass_of — 如果此對象是該類的子類,則返回 true
說明
$object
, string $class_name
): bool
如果對像 object
所屬類是類 class_name
的子類,則返回 true
,否則返回 false
。
注意:
自 PHP 5.0.3 起也可以用一個字串來指定
object
參數(類名)。
示例 #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
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";
}
?>
以上例程會輸出:
yes, $WFC is a subclass of WidgetFactory no, $WF is not a subclass of WidgetFactory yes, WidgetFactory_Child is a subclass of WidgetFactory
註釋
注意:
如果此類不是已知類,使用此函式會使用任何已註冊的 autoloader。
參見
- get_class() - 返回對象的類名
- get_parent_class() - 檢索對像或者類的父級類名
- is_a() - 如果對像屬於該類或該類是此對象的父類則返回 true
- class_parents() - 返回指定類的父類。