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

 

posted @ 2015-07-21 16:26  goodup  阅读(1291)  评论(0编辑  收藏  举报

如有不对之处,欢迎指出,一起成长