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
广告