is_subclass_of 如果此对象是该类的子类,则返回 true
发表日期:2021-07-01 08:57:11 | 来源: | | 浏览(844) 分类:类/对象 函数
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 classclass WidgetFactory{ var $oink = 'moo'; } // define a child classclass 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.3if (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 classclass WidgetFactory{ var $oink = 'moo'; } // define a child classclass 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.3if (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() - 返回指定类的父类。
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- __autoload 尝试加载未定义的类(0)
- class_alias 为一个类创建别名(0)
- class_exists 检查类是否已定义(0)
- get_called_class 后期静态绑定("Late Static Binding")类的名称(0)
- get_class_methods 返回由类的方法名组成的数组(0)
- get_class_vars 返回由类的默认属性组成的数组(0)
- get_class 返回对象的类名(0)
- get_declared_classes 返回由已定义类的名字所组成的数组(0)
- get_declared_interfaces 返回一个数组包含所有已声明的接口(0)
- get_declared_traits 返回所有已定义的 traits 的数组(0)
- get_object_vars 返回由对象属性组成的关联数组(0)
- get_parent_class 返回对象或类的父类名(0)
- interface_exists 检查接口是否已被定义(0)
- is_a 如果对象属于该类或该类是此对象的父类则返回 true(0)
- is_subclass_of 如果此对象是该类的子类,则返回 true(0)
- method_exists 检查类的方法是否存在(0)
- property_exists 检查对象或类是否具有该属性(0)
- trait_exists 检查指定的 trait 是否存在(0)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)