douzhicai7148 2014-04-27 10:39
浏览 19
已采纳

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);
?>
  • 写回答

1条回答 默认 最新

  • dsnw2651 2014-04-27 10:51
    关注

    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".

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?