1. ホーム
  2. php

[解決済み] PHP で、クラスが存在するかどうかを確認するにはどうすればよいですか?

2022-02-08 16:26:57

質問

メインクラスには、このような構造体関数があります。

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']);
}

で、クラスを定義しているのですが、このクラスはライブラリファイルになっており、1つを除いて、ファイルの最初に含まれています。

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

そこで、dbinfoクラスのコンストラクション関数に次のようなチェックを追加したい。

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 クラスがファイルに存在するかどうかをチェックする正しい方法を教えてください。

解決方法は?

を使ってみてください。 class_exists() http://php.net/manual/en/function.class-exists.php

あなたの場合 dbinfo クラスはこれを行います。

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

クラスに名前空間がある場合は、名前空間付きのクラス名をフルに含めます。