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

 

你可能感兴趣的:(instanceof)