Skip to content
← Back to Snippets
Code

Check if a Class Exists

Checks a requested PHP class name with class_exists() and returns a safe status array without triggering autoloader surprises unless explicitly allowed.

Purpose

Checks a requested PHP class name with class_exists() and returns a safe status array without triggering autoloader surprises unless explicitly allowed.

Snippet details

ContextUtilityLevelProductionCopy-and-paste statusMarked safe after review.

Categories

  • Forms and Validation

Code

<?php

/*
 * Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
 * Free for personal and internal use. Paid project use requires visible credit
 * to Jeffery L. Paris. Corporate use requires a paid license fee unless a
 * separate written license states otherwise.
 */

/**
 * Check if a Class Exists.
 *
 * Purpose:
 * Checks whether a PHP class is available before code attempts to use it.
 *
 * @param string $class_name Class name to check.
 * @param bool $allow_autoload Whether class_exists() may trigger autoloading.
 * @return array Class availability details.
 */
function ogSnippetCheckIfClassExists(string $class_name, bool $allow_autoload): array {
	$class_name = trim($class_name);

	if ($class_name === '') {
		return array(
			'class_name' => '',
			'exists' => false,
			'message' => 'No class name was provided.'
		);
	}

	$class_exists = class_exists($class_name, $allow_autoload);

	if ($class_exists === true) {
		$message = 'Class is available.';
	} else {
		$message = 'Class is not available.';
	}

	return array(
		'class_name' => $class_name,
		'exists' => $class_exists,
		'autoload_allowed' => $allow_autoload,
		'message' => $message
	);
}

$known_check = ogSnippetCheckIfClassExists('DateTimeImmutable', false);
$fictional_check = ogSnippetCheckIfClassExists('GalacticaJumpDrive', false);

echo 'Known class check: '.$known_check['message'];
echo "\n";
echo 'Battlestar class check: '.$fictional_check['message'];