php is_subclass_of,PHP is_subclass_of函数的一个BUG和解决方法
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和解决方法相关推荐
- 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 ...
- 设置PSPad调用devcpp中的mingw Gcc进行编译;另附PSPad中文版一个BUG的解决方法
PSPad是一个优秀的代码编辑工具,和UE相比,功能丝毫不弱,而且PSPad是免费的,这是最重要地,没有版权问题了. 前面曾说过安装DEV-CPP后,用命令行及UltraEdit调用devcpp中的m ...
- 关于VC++6.0中getline函数的一个bug
关于VC++6.0中getline函数的一个bug 最近在调试程序时,发现getline函数在VC++6.0和其他编译器上运行结果不一样,比如有如下这段程序: #include <iostrea ...
- whitelabel error page怎么解决_pyppeteer使用遇到的bug及解决方法
pyppeteer的问题 本身这个项目是非官方的,是基于谷歌官方puppeteer的python版本. 本来chrome就问题多多,puppeteer也是各种坑,加上pyppeteer是前两者的pyt ...
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
自从Android3.0引入了Fragment之后,使用Activity去嵌套一些Fragment的做法也变得更加流行,这确实是Fragment带来的一些优点,比如说:Fragment可以使你能够将a ...
- 回调函数与回调地狱及其解决方法 | JavaScript
JavaScript中的回调函数与回调地狱及其解决方法 以下为整理的思维导图 图片版+文字版 文末附有参考文章链接 知识点思维导图版 一.什么是回调函数 1.MDN的定义 回调函数是作为参数传给另一个 ...
- 关于深澜校园网与Windows系统之间存在的bug及解决方法
关于深澜校园网与Windows系统之间存在的bug及解决方法 问题描述 大多数装了深澜校园网客户端的Windows8或者win10 1809及以后版本系统用户在一次重启电脑或者普通开机之后,发现深澜拨 ...
- 魔兽世界8.0服务器不稳定老掉线,魔兽世界8.0升级常见BUG及解决方法介绍
魔兽世界8.0升级常见BUG及解决方法介绍 2018-08-15 09:36:56来源:游戏下载编辑:苦力趴评论(0) <魔兽世界>8.0版本"争霸艾泽拉斯"已经在今日 ...
- 跑论文Unsupervised Question Answering by Cloze Translation的实验遇到的bug以及解决方法
前言 花了3~4天,其实不止,也可以说没有那么久,因为前期没有实验环境的时候熟悉了下ubuntu的用法啥的,然后跑这个论文代码的时候也是停停歇歇的,因为服务器要用我师姐的账号联网,但是我师姐也要用,还 ...
最新文章
- 全球最大中文单体模型来了!2600亿参数,AI产业规模化应用可期
- python读取大文件太慢_python读取大文件越来越慢的原因与解决
- 两机五节点电力系统的潮流仿真计算_南科大杨再跃课题组在电力系统、机器学习等领域取得重要研究成果...
- 计算机应用基础2016高起专,计算机应用基础-2016年秋季《计算机应用基础(高起专)》期末考核(20210407163441).pdf...
- mysql日期格式转化
- 重返数学史的黄金时代,由数学推动诞生的人工智能,一部人类智慧形成的历史
- 关于C语言中的Bool类型变量的一点看法
- 关于快速排序的一些理解
- 数据结构笔记(四)-- 静态链表实现
- SPOJ VLATTICE Visible Lattice Points(莫比乌斯反演)题解
- java 手机号码归属地查询
- 下载Instagram的图片
- IDEA社区版下载安装
- LeetCode 每日一题331. 验证二叉树的前序序列化
- 音频基础概念及常见编码格式
- MySQL无法启动,服务没有报告任何错误
- Python代码写好了怎么运行?为大家详细讲讲如何运行Python代码
- 基于MATLAB的波束成型仿真
- 手机开热点显示互联网无服务器,win10热点无互联网连接的具体解决办法【图文】...
- 文件下载(xls、txt、pdf)格式