php怎么判断类存不存在
墨初 编程开发 567阅读
在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('73so')); // 输出结果 bool(false)
注意:在使用 class_exists() 函数时,推荐设置它的第二个参数为 false.
2、php 检测引用的文件中是否存在某个类
(1)、先创建一个php文件“d.php”,代码如下
<?php class 73so { }
(2)、在另一个文件中检测类是否存在
<?php require 'd.php'; var_dump(class_exists('73so')); // bool(true)
(3)、如果先执行php类的判断再引入文件,则判断会失效,因为php的执行是从上到下的。
<?php var_dump(class_exists('73so')); 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() 是和命名空间有着相关联系的。