php class_exits没有按预期工作

I am trying to check if class exists and it returns false but if i check manually, it works successfully. Why is it so.

<?php

$controller_file = 'app/controllers/user.php';
$controller = 'User';

/**
 * Check if controller file exists
 */
if(!file_exists($controller_file)  ){
    throw new Exception(" Missing controller file");
}
require_once($controller_file);

/**
 * Check if controller and method exists
 */
if(class_exists($controller, false)){
    throw new Exception("Invalid Controller"); //this error thrown
}

$user = new User(); // these work 
var_dump($controller);
?>

It is working, you forgot a !, it should actually be:

if (!class_exists($controller, false)){
    throw new Exception("Invalid Controller"); //this error thrown
}

Your current code reads "if class User exists, throw an exception". Pretty sure you want "If class User doesn't exist, throw an exception".