is_subclass_of的作用:

复制代码 代码如下:

bool is_subclass_of ( object object, string class_name )

如果对象 object 所属类是类 class_name 的子类,则返回 TRUE,否则返回 FALSE。

注: 自 PHP 5.0.3 起也可以用一个字符串来指定 object 参数(类名)。

使用例子:

复制代码 代码如下:

#判断$className是否是$type的子类

is_subclass_of($className,$type);

php5.3.7版本前针对interface会有一个bug

bug:https://bugs.php.net/bug.php?id=53727

复制代码 代码如下:

interface MyInterface {}

class ParentClass implements MyInterface { }

class ChildClass extends ParentClass { }

# true

is_subclass_of('ChildClass', 'MyInterface');

# false

is_subclass_of('ParentClass', 'MyInterface');

解决办法:

复制代码 代码如下:

function isSubclassOf($className, $type){

// 如果 $className 所属类是 $type 的子类,则返回 TRUE

if (is_subclass_of($className, $type)) {

return true;

}

// 如果php版本>=5.3.7 不存在interface bug 所以 $className 不是 $type 的子类

if (version_compare(PHP_VERSION, '5.3.7', '>=')) {

return false;

}

// 如果$type不是接口 也不会有bug 所以 $className 不是 $type 的子类

if (!interface_exists($type)) {

return false;

}

// 创建一个反射对象

$r = new ReflectionClass($className);

// 通过反射对象判断该类是否属于$type接口

return $r->implementsInterface($type);

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php is_subclass_of,PHP is_subclass_of函数的一个BUG和解决方法相关推荐

  1. php is_subclass_of,PHP_PHP is_subclass_of函数的一个BUG和解决方法,is_subclass_of的作用: 复制代码 - phpStudy...

    PHP is_subclass_of函数的一个BUG和解决方法 is_subclass_of的作用: bool is_subclass_of ( object object, string class ...

  2. 设置PSPad调用devcpp中的mingw Gcc进行编译;另附PSPad中文版一个BUG的解决方法

    PSPad是一个优秀的代码编辑工具,和UE相比,功能丝毫不弱,而且PSPad是免费的,这是最重要地,没有版权问题了. 前面曾说过安装DEV-CPP后,用命令行及UltraEdit调用devcpp中的m ...

  3. 关于VC++6.0中getline函数的一个bug

    关于VC++6.0中getline函数的一个bug 最近在调试程序时,发现getline函数在VC++6.0和其他编译器上运行结果不一样,比如有如下这段程序: #include <iostrea ...

  4. whitelabel error page怎么解决_pyppeteer使用遇到的bug及解决方法

    pyppeteer的问题 本身这个项目是非官方的,是基于谷歌官方puppeteer的python版本. 本来chrome就问题多多,puppeteer也是各种坑,加上pyppeteer是前两者的pyt ...

  5. 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法

    自从Android3.0引入了Fragment之后,使用Activity去嵌套一些Fragment的做法也变得更加流行,这确实是Fragment带来的一些优点,比如说:Fragment可以使你能够将a ...

  6. 回调函数与回调地狱及其解决方法 | JavaScript

    JavaScript中的回调函数与回调地狱及其解决方法 以下为整理的思维导图 图片版+文字版 文末附有参考文章链接 知识点思维导图版 一.什么是回调函数 1.MDN的定义 回调函数是作为参数传给另一个 ...

  7. 关于深澜校园网与Windows系统之间存在的bug及解决方法

    关于深澜校园网与Windows系统之间存在的bug及解决方法 问题描述 大多数装了深澜校园网客户端的Windows8或者win10 1809及以后版本系统用户在一次重启电脑或者普通开机之后,发现深澜拨 ...

  8. 魔兽世界8.0服务器不稳定老掉线,魔兽世界8.0升级常见BUG及解决方法介绍

    魔兽世界8.0升级常见BUG及解决方法介绍 2018-08-15 09:36:56来源:游戏下载编辑:苦力趴评论(0) <魔兽世界>8.0版本"争霸艾泽拉斯"已经在今日 ...

  9. 跑论文Unsupervised Question Answering by Cloze Translation的实验遇到的bug以及解决方法

    前言 花了3~4天,其实不止,也可以说没有那么久,因为前期没有实验环境的时候熟悉了下ubuntu的用法啥的,然后跑这个论文代码的时候也是停停歇歇的,因为服务器要用我师姐的账号联网,但是我师姐也要用,还 ...

最新文章

  1. 全球最大中文单体模型来了!2600亿参数,AI产业规模化应用可期
  2. python读取大文件太慢_python读取大文件越来越慢的原因与解决
  3. 两机五节点电力系统的潮流仿真计算_南科大杨再跃课题组在电力系统、机器学习等领域取得重要研究成果...
  4. 计算机应用基础2016高起专,计算机应用基础-2016年秋季《计算机应用基础(高起专)》期末考核(20210407163441).pdf...
  5. mysql日期格式转化
  6. 重返数学史的黄金时代,由数学推动诞生的人工智能,一部人类智慧形成的历史
  7. 关于C语言中的Bool类型变量的一点看法
  8. 关于快速排序的一些理解
  9. 数据结构笔记(四)-- 静态链表实现
  10. SPOJ VLATTICE Visible Lattice Points(莫比乌斯反演)题解
  11. java 手机号码归属地查询
  12. 下载Instagram的图片
  13. IDEA社区版下载安装
  14. LeetCode 每日一题331. 验证二叉树的前序序列化
  15. 音频基础概念及常见编码格式
  16. MySQL无法启动,服务没有报告任何错误
  17. Python代码写好了怎么运行?为大家详细讲讲如何运行Python代码
  18. 基于MATLAB的波束成型仿真
  19. 手机开热点显示互联网无服务器,win10热点无互联网连接的具体解决办法【图文】...
  20. 文件下载(xls、txt、pdf)格式

热门文章

  1. 车牌识别算法库EasyPR的编译实战
  2. 字符编码(ucs2 ucs4 utf)
  3. eclipse-阶段二-字体修改问题
  4. arcore之路-unity开发从入门到实践_AR开发之路——准备工作
  5. Shell脚本的模块化和脚本复用
  6. 31. Next Permutation (java 字典序生成下一个排列)
  7. java安卓如何实现定义接口
  8. 为什么TCP连接不可靠
  9. ar nm ldd 静态库 动态库
  10. jstorm mysql_Jstorm+Spring+mybatis整合