PHP - 類/物件 class_exists() 函式



PHP 類/物件 class_exists() 函式用於檢查給定的類是否已定義。如果 class_name 是一個已定義的類,則返回 TRUE,否則返回 FALSE。此函式在您必須在嘗試建立該類的物件或以任何方式與之互動之前檢查該類是否可用時非常有用。

語法

以下是 PHP 類/物件 class_exists() 函式的語法:

bool class_exists ( string $class_name , bool $autoload );

引數

以下是 class_exists() 函式的引數:

  • $class_name − 它是類名。名稱不區分大小寫。

  • $autoload − 可選。如果為 true,則如果該類尚未宣告,則該函式將嘗試自動載入該類。預設為 true。

返回值

如果類存在,則 class_exists() 函式返回 true,如果失敗則返回 FALSE。

PHP 版本

class_exists() 函式首次引入到 PHP 4 核心,並在 PHP 5、PHP 7 和 PHP 8 中繼續輕鬆執行。

示例 1

首先,我們將使用 PHP 類/物件 class_exists() 函式來演示基本用法並檢查名為 MyClass 的類是否存在。

<?php
   // Declare class here
   class MyClass {}

   // Check of the class exists or not
   if (class_exists('MyClass')) {
       echo "MyClass exists!";
   } else {
       echo "MyClass does not exist.";
   }
?> 

輸出

這將生成以下輸出:

MyClass exists!

示例 2

此示例檢查一個名為 NonDeclaredClass 的類,該類尚未定義。因此,使用 class_exists() 函式檢查此類是否存在。

<?php
   // If the class does not exist
   if (class_exists('NonDeclaredClass')) {
      echo "NonDeclaredClass exists!";
   } else {
      echo "NonDeclaredClass does not exist.";
   }
?>

輸出

以下是以下程式碼的結果:

NonDeclaredClass does not exist.

示例 3

此示例透過嘗試檢視可以使用 class_exists() 函式自動載入的類來演示自動載入功能。

<?php
   // Register an autoload function
   spl_autoload_register(function($className) {
      // Check if the class name is 'AutoLoadedClass'
      if ($className == 'AutoLoadedClass') {
          eval('class AutoLoadedClass {}');
      }
    });
    
    if (class_exists('AutoLoadedClass')) {
      echo "AutoLoadedClass exists!";
    } else {
      echo "AutoLoadedClass does not exist.";
    }
?> 

輸出

這將建立以下輸出:

AutoLoadedClass exists!

示例 4

在以下示例中使用 class_exists() 函式,如果類尚未宣告,則停用自動載入,並且它返回一個 false 值。

<?php
   if (class_exists('AutoLoadedClass', false)) {
     echo "AutoLoadedClass exists!";
   } else {
     echo "AutoLoadedClass does not exist.";
   }
?> 

輸出

以下是上述程式碼的輸出:

AutoLoadedClass does not exist.
php_function_reference.htm
廣告