php -- instanceof、class_exists、insterface_exists、method_exists、get_class、get_parent_class

class_exists:类是否存在

在创建对象之前判断类是否存在,如果不存在就应该先加载类,再创建对象,容错。

interface_exists:接口是否存在

method_exists:方法是否存在

get_class:得到对象类名

get_parent_class:得到父类的类名(不管父类是否继承自其他类)

<?php

    //对象相关函数
    class S{

    }

    class A extends S{
        private function test(){

        }
    }

    class B extends A{

    }
    echo ‘<pre>‘;
    //子类对象是否属于父类
    $b = new B;
    var_dump($b instanceof A);                    //true
    var_dump($b instanceof B);                    //true

    //判断类是否存在
    var_dump(class_exists(‘A‘));                //true

    //判断接口是否存在
    var_dump(interface_exists(‘A‘));            //false

    //判断方法是否存在,只是判断类中是否有该方法,而不是去访问
    //不管方法是用什么访问修饰限定符
    var_dump(method_exists(new A,‘test‘));        //true
    var_dump(method_exists(‘A‘,‘test‘));        //true
    var_dump(method_exists(‘B‘,‘test‘));        //true
    //一旦类与类之间进行继承,只会判断继承链上是否存在该方法,判断不出来方法是否被继承

    //得到对象的类名
    var_dump(get_class($b));                    //B
    var_dump(get_parent_class($b));                //A
时间: 2024-08-03 20:46:07

php -- instanceof、class_exists、insterface_exists、method_exists、get_class、get_parent_class的相关文章

1、AJAX里面status的值代表什么 2、get post 的区别 3、怎样把对象转化成字符串 4、闭包、继承、原型、原型链 5 、http传输协议 6、arguments是什么

1.AJAX里面status的值代表什么     在JavaScript里面写AJax的时,最关键的一步是对XMLHttpRequest对象建立监听,即使用"onreadystatechange"方法.监听的时候,要对XMLHttpRequest对象的请求状态进行判断,通常是判断readyState的值为4且status的值为200或者304时执行我们需要的操作.以下记录了一些常用readState以及status的值及其含义 readyState 属性表示Ajax请求的当前状态.它的

Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错) 【转】

互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应. 第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡. (1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也

南京易胜配资:什么是微基金股票配资、期货配资?配资4、盘手须注重资金操作风险在风险

配资公司 微型基金 英文名(Micro Fund),由翊晟金融率先提出微型基金概念,是指由投资公司通过一定比例替盘手成立微型基金,规模几万到几千万不等,由盘手投资于股票期货交易的一种行为,其目的在于放大资金杠杆.分类上讲有期货微型基金,股票微型基金等. 基本概述 一.微型基金的简单介绍很多期货投资者拥有长期的操盘经验,可是资金量不足,盈利无法扩大.投资者只需交纳一定的风险保证金,以承担交易风险,公司提供操作帐户,由投资者进行期货交易. 二.风险和收益 交易盈利部分全部属于投资者所有,当然亏损也全

Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】

Debug目录.Release目录,bin目录.obj目录,vshost.exe.config文件..exe.config文件分析[C#] 2013-10-06  孤风卓影  摘自 csdn博客  阅 558  转 4 转藏到我的图书馆 微信分享: 今天写程序的时候,需要更改.exe.config文件中的引用的webservice地址,用vs调试的时候,发现会修改vshost.exe.config中的对应项,.exe.config中的对应项是不会修改的,这样会导致在软件重启的情况下,.exe.c

五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX

五大权限:UGO权限.SetUID SetGID Sticky.ACL权限.chattr(文件系统级别的权限).SELINUX ======================文件属性以及ugo权限================================== ls -l 列出文件的属性 linux文件的类型包括以下六种: -  普通文件 d 目录文件 l  链接文件 b block类型的设备文件  块设备文件 c 字符型的设备文件 s socket文件 网络类型的文件 p 管道类型的文件 u

C#1(.net和C#的关系、VS与.net的对应关系、VS2012常用的几种应用程序、C#定义一个类的方法、类页面内容的解释、定义Person的类、调用Person类的方法、命名规范、数值类型)

1..net和C#的关系 .net是一个开发平台,C#是应用在.net平台上的一种语言.   2.VS与.net的对应关系  3.VS2012常用的几种应用程序 第一种是Windows窗体应用程序,也即是我们常用的C/S端的应用软件: 第二种是控制台应用程序,主要是用来学习调试C#代码的(老师上课应用的模式): 第三种是空Web应用程序,建立空的网页模式,B/S模式: 第四种是Web 窗体应用程序,建立后会生成一些常用的网页组件和功能,例如JS.image等,也是B/S模式. 4.C#定义一个类

PHPCMS中GET标签概述、 get 标签语法、get 标签创建工具、get 调用本系统演示样例、get 调用其它系统演示样例

一.get 标签概述 通俗来讲,get 标签是Phpcms定义的能直接调用数据库里面内容的简单化.友好化代码,她可调用本系统和外部数据,仅仅有你对SQL有一定的了解,她就是你的绝世好剑!也就是适合熟悉SQL语句的人使用.有了她,我们打造个性化的站点,能很方便的调用出数据库里面指定的内容.通过条件限制,我们能够调用出不同条件下的不同数据. 二.get标签样式 {get dbsource=" " sql=" "} {/get} 三.get 标签语法 1.get标签属性值

1、Android项目框架搭建 (分析需求、整理资料)

闲来无事.想搭个框架试试 分析一般应用 将资料整理整理 粗略统计 需要以下资料 1.android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.GridView.(Horizontal )ScrollView.Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多.并且他实现的下拉刷新ListView在item不足一屏情况下也

java的文件流:字节流(FileInputStream、FileOutputStream)和字符流(FileReader、FileWriter)。

java的输入输出建立在4个抽象类的基础上:InputStream.OutputStream.Reader.Writer.InputSream和OutputStream被设计成字节流类,而Reader和Writer被设计成字符流类.一般来说,处理字符或者字符串时应该使用字符流类,处理字节或者二进制对象时应该使用字节流类. 一般在操作文件流时,不管是字节流还是字符流,都可以按照以下的方式进行. 1.使用File类找到一个文件 2.通过File类实例化字节流或字符流 3.进行字节(字符)的读写操作

PS等难卸载软件的通用强制卸载方法、安装程序检测到计算机重新启动...问题、安装失败问题

一.强制卸载 1.找到安装目录删除相关文件 2.在C盘搜索相关的文件夹并删除 3.使用360等软件清理注册表,完成. 二.安装程序检测到计算机重新启动的过程...的问题处理 http://jingyan.baidu.com/article/5d368d1e1873b93f61c0575c.html (注意看图) 三.安装失败 http://jingyan.baidu.com/album/9f7e7ec04170fc6f28155481.html https://blog.twofei.com/5