在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() 是和命名空间有着相关联系的。