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_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);
}相关阅读:
javascript中setTimeout使用指南
win10系统升级后电脑经常无响应提示a language pack isnt avaliable的原因及解决方法
CSS垂直居中实现方法大全
Javascript 按位取反运算符 (~)
集合类Array List HashTable实例操作练习
详解Linux系统中wget的使用方法
BOOTCAMP “您的磁盘不能恢复为单一的分区”解决方法
linux系统中轻量级内核虚拟化技术LXC安装部署实践
Win10准正式版Build 10240已经送交微软合作厂商
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
jquery动态添加删除一行数据示例
Win10内置应用安装失败报错0x80073cff的解决方法
JS实现很实用的对联广告代码(可自适应高度)
PHP fastcgi模式上传大文件(大约有300多K)报错
php is_subclass_of,PHP_PHP is_subclass_of函数的一个BUG和解决方法,is_subclass_of的作用: 复制代码 - phpStudy...相关推荐
- php is_subclass_of,PHP is_subclass_of函数的一个BUG和解决方法
is_subclass_of的作用: 复制代码 代码如下: bool is_subclass_of ( object object, string class_name ) 如果对象 object 所 ...
- 设置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的用法啥的,然后跑这个论文代码的时候也是停停歇歇的,因为服务器要用我师姐的账号联网,但是我师姐也要用,还 ...
最新文章
- windbg调试命令2(!gle、g、p)
- 数据库实现列值合并为行
- 金立手机又推新品!翻盖手机A326发布 意图复刻经典
- android 实现 效果代码,Android实现雷达View效果的示例代码
- sqlserver 2008r2 执行代码 快捷键
- 【linux高级程序设计】(第九章)进程间通信-管道 3
- 2.5.1 命令与参数
- 【从线性回归到BP神经网络】第三部分:Logistic回归
- 软件项目管理案例教程课后答案
- 最全面的PS快捷键使用指南
- mw150r 虚拟服务器,水星MW150R V1.3路由器web刷dd-wrt和741n以及刷回官方原版过程记录...
- 计算机DVD驱动禁用怎么恢复,设备管理器中找不到dvd驱动器 怎么恢复 - 驱动管家...
- 阿里知产研究院报告:侵犯知识产权行为的罪与罚 | 湖畔新知汇
- mysql distance_MySql中的一些小坑
- CTF-web-秋名山老司机
- Win11的几个实用技巧系列之不能玩植物大战僵尸、如何彻底删除360所有文件
- 《AR与VR开发实战》导读
- Android用mediaPlayer.prepare()报错
- [日企面试问题]日本企業面接問題
- CS5266Typec转HDMI+PD+U2+U3多口拓展坞设计原理图
热门文章
- C++结构体中有构造函数和析构函数
- .sln vcxproj vcxproj.filter文件作用(转载)
- 仿回收站效果的设计与实现
- Linux开机启动过程(2):内核启动的第一步
- 买房前需要注意的事项有哪些
- jQuery菜鸟总结
- RecycleView的Item Animator动画
- java怎么查问题,java线上问题排查(日志、资源、代码定位)
- 黑莓桌面管理器4.2_虚拟桌面管理器行业现状调研分析及发展趋势预测报告(2020)...
- notepad怎么运行php程序,notepad怎么运行php程序