array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.class-exists.php', 1 => 'class_exists', ), 'up' => array ( 0 => 'ref.classobj.php', 1 => 'Функции работы с классами и объектами', ), 'prev' => array ( 0 => 'function.class-alias.php', 1 => 'class_alias', ), 'next' => array ( 0 => 'function.enum-exists.php', 1 => 'enum_exists', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/classobj/functions/class-exists.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
class_exists — Проверяет, объявили ли класс
Функция проверяет, объявили ли класс.
class
Имя класса. Воспринимается без учёта регистра.
autoload
Нужно ли автоматически подгружать класс, если класс ещё не загрузили.
Пример #1 Пример использования функции class_exists()
<?php
// Проверяем существование класса прежде чем создать экземпляр объекта
if (class_exists('MyClass')) {
$myclass = new MyClass();
}
?>
Пример #2 Пример использования c параметром autoload
<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
// Проверяем, объявило ли класс выражение include
if (!class_exists($class_name, false)) {
throw new LogicException("Unable to load class: $class_name");
}
});
if (class_exists(MyClass::class)) {
$myclass = new MyClass();
}
?>