在PHP中如何检查类是否存在?

时间:2016-06-22 15:10:56

标签: php class struct

所以我在主类

中有这种结构函数
function __construct(){
    $this->conf = $GLOBALS['conf'];
    $this->dbi = new dbinfo;
    $this->modOpt = new modOptions;
    $this->lang = new language;

    /** Connect DB extended Class **/
    parent::__construct($GLOBALS['connect']);
}

其中我定义了类,但是这个类是进入库文件的,该文件包含在文件的开头,除了一个,当post请求出现时会包含这个:

if (isset($_POST['delGroup']) && isset($_SESSION['content_viewer']) && $_SESSION['content_viewer']['code'] >= 1){   
    include_once(realpath(dirname(__FILE__) . '/../..')."/mod/dbinfo/proc.php");
}

所以我想在我的构造函数中加入check for dbinfo class,就像这样

function __construct(){
    $this->conf = $GLOBALS['conf'];
    if (isset(new dbinfo))
        $this->dbi = new dbinfo;

    $this->modOpt = new modOptions;
    $this->lang = new language;

    /** Connect DB extended Class **/
    parent::__construct($GLOBALS['connect']);
}

但这个方法if isset不起作用,请告诉我如何检查类是否存在于文件中的正确方法。感谢

2 个答案:

答案 0 :(得分:3)

尝试使用class_exists() http://php.net/manual/en/function.class-exists.php

在您的情况下,寻找dbinfo课程:

      if(class_exists('dbinfo')){
          //do something

如果您的类具有命名空间,请包含ful命名空间的类名。

答案 1 :(得分:1)

class_exists('class_name',false);

如果函数尝试加载该类,则将false设置为true