今天在网上查看class_exists方法(http://php.net/manual/en/function.class-exists.php)的用法的时候,发现class_exists方法的定义如下: bool class_exists ( string $class_name [, bool $autoload = true ] ); 它是有两个参数的,我们平时用这个方法的时候大都只给了第一个参数,第二个参数的默认值是默认为true,而关于第二个参数的解释是: autoload Whether or not to call __autoload by default. 所以当我们不设置第二个参数时,会去调用__autoload方法去加载类, 众所周知__autoload方法的机制,它可能会对磁盘进行大量的I/O操作,严重影响效率,所以大家在用这个方法的时候可以用如下两种方法解决: NO1:把第二个参数设置为false NO2: To find out whether a class can be autoloaded, you can use autoload in this way: <?php //Define autoloader function __autoload($className) { if (file_exists($className . '.php')) require $className . '.php'; else throw new Exception('Class "' . $className . '" could not be autoloaded'); } function canClassBeAutloaded($className) { try { class_exists($className); return true; } catch (Exception $e) { return false; } } ?>