在php脚本中可以使用预设函数 class_exists() 来检测一个类是否被定义或引用,当然使用它时也要注意很多的地方,下面就来详细的说一下吧。

php class_exists() 函数

class_exists():检查指定的类是否已定义或引用,如已定义或被引用返回 true 否则返回 false.

语法:

class_exists ( $class_name ,$autoload = true )

参数:

$class_name:要检查的类名,不区分大小写的。

$autoload:默认为 true,是否调用 是否默认调用 __autoload

php class_exists() 函数的用法

1、php检测一个类是否存或定义

// 普通的写法
var_dump(class_exists('mochu'));
// 推荐的写法
var_dump(class_exists('mochu',false));
// 输出结果 bool(true)
var_dump(class_exists('feiniao'));
// 输出结果 bool(false)

注意:在使用 class_exists() 函数时,推荐设置它的第二个参数为 false.

2、php 检测引用的文件中是否存在某个类

(1)、先创建一个php文件“d.php”,代码如下

<?php
class feiniao {
    
}

(2)、在另一个文件中检测类是否存在

<?php
require 'd.php';
var_dump(class_exists('feiniao'));
// bool(true)

(3)、如果先执行php类的判断再引入文件,则判断会失效。

<?php
var_dump(class_exists('feiniao'));
require 'd.php';
// bool(false)

3、php检测带有命名空间的类是否存在

<?php
namespace mochu;
class add{
 
}
// 错误的写法
var_dump(class_exists('add',false));
// 输出结果 bool(false)
// 正确的写法
var_dump(class_exists('mochu\add',false));
// 输出结果 bool(true)

注意:使用 class_exits() 判断带有命名空间的类时,必须带上命名空间,也就是说 class_exists() 是和命名空间有着相关联系的。