用于组织,测试和操作对象及类的工具和技术-2 查找类/检测对象类型

本文介绍了PHP中如何检测类的存在状态、获取类名以及判断对象的类型和继承关系。通过实例演示了class_exists(), get_class(), 和 instanceof 操作符的使用。

查找类

class_exists()函数接受表示类的字符串,检查并返回布尔值。
如果类存在,则返回true,否则返回false.


也可以用get_declared_classes()函数来获得脚本进程中定义的所有类的数组。
print_r(get_declared_classes());
将会列出用户定义的类和PHP内置的类。

它只返回在函数调用时已声明的类

检测对象类型

可以使用get_class()函数检查对象的类
它接受任何对象作为参数,并以字符串的形式返回类名

还可以用instanceof操作符判断继承关系

<?php
    class Test
    {
        public $username = 'lily';
        protected $age=23;

        public function __construct()
        {
            echo '这里是autoload测试<br/>';
        }
    }

    interface interface_test
    {
        public function fly();
    }

    class child_Test extends Test implements interface_test
    {
        public function __construct()
        {
            echo '这个是子类child_Test<br/>';
        }

        public function fly()
        {
            'i believe i can fly!<br/>';
        }
    }


?>
<?php
    require_once 'test.php';

    $test = new Test;
    $child_test = new child_Test;

    $classname = get_class($test);
    echo '$test的类名='.$classname.'<br/>';
    $child_classname = get_class($child_test);
    echo '$child_classname的类名='.$child_classname.'<br/>';

    echo 'instanceof 操作符测试<br/>';
    if ($child_test instanceof interface_test) 
    {
        echo '继承类<br/>';
    } else {
        echo '不是继承关系<br/>';
    }
    

    echo '判断类是否存在用class_exists<br/>';
    if (class_exists('Test')) 
    {
        echo '类存在<br/>';
    } else {
        echo '类不存在<br/>';
    }
    

    echo '<pre>';
    echo '脚本内使用的类:<br/>';
    print_r(get_declared_classes());
    echo '</pre>';
?>

转载于:https://my.oschina.net/u/946060/blog/107173

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值