Classes/Object 函数
PHP Manual

class_exists

(PHP 4, PHP 5)

class_exists检查类是否已定义

说明

bool class_exists ( string $class_name [, bool $autoload ] )

如果由 class_name 所指的类已经定义,此函数返回 TRUE,否则返回 FALSE

Example #1 class_exists() 例子

<?php
// Check the class exists before trying to use it
if (class_exists('MyClass')) {
    
$myclass = new MyClass();
}

?>

class_exists() 默认将会尝试调用 __autoload,如果不想让 class_exists() 调用 __autoload,可以将 autoload 参数设为 FALSE

Example #2 autoload 参数例子

<?php
function __autoload($class)
{
    include(
$class '.php');

    
// Check to see if the include declared the class
    
if (!class_exists($classfalse)) {
        
trigger_error("Unable to load class: $class"E_USER_WARNING);
    }
}

if (
class_exists('MyClass')) {
    
$myclass = new MyClass();
}

?>

Note:

autoload 参数是 PHP 5 添加的。

参见 interface_exists()get_declared_classes()

参数

class_name

The class name. The name is matched in a case-insensitive manner.

autoload

Whether or not to call __autoload by default.

返回值

Returns TRUE if class_name is a defined class, FALSE otherwise.

更新日志

版本 说明
5.0.2 No longer returns TRUE for defined interfaces. Use interface_exists().
5.0.0 The autoload parameter was added.

范例

Example #3 class_exists() example

<?php
// Check that the class exists before trying to use it
if (class_exists('MyClass')) {
    
$myclass = new MyClass();
}

?>

Example #4 autoload parameter example

<?php
function __autoload($class)
{
    include(
$class '.php');

    
// Check to see whether the include declared the class
    
if (!class_exists($classfalse)) {
        
trigger_error("Unable to load class: $class"E_USER_WARNING);
    }
}

if (
class_exists('MyClass')) {
    
$myclass = new MyClass();
}

?>

参见


Classes/Object 函数
PHP Manual