Home > Article > Backend Development > What is the method to detect whether a class exists in PHP?
#What is the method in PHP to detect whether a class exists?
In PHP, you can use the "class_exists()" function to check whether the class exists. The function of this function is to check whether the class has been defined. Its usage is "class_exists($class_name)", and its parameter " $class_name" represents the class name to be detected.
Recommended video tutorial: "PHP Programming from Beginner to Master (Learning Route)"
Sample code
<?php // 使用前检查类是否存在 if (class_exists('MyClass')) { $myclass = new MyClass(); } ?>
<?php /** * Set my include path here */ $include_path = array( '/include/this/dir', '/include/this/one/too' ); set_include_path( $include_path ); spl_autoload_register(); /** * Assuming I have my own custom exception handler (MyException) let's * try to see if a file exists. */ try { if( ! file_exists( 'myfile.php' ) ) { throw new MyException('Doh!'); } include( 'myfile.php' ); } catch( MyException $e ) { echo $e->getMessage(); } /** * The above code either includes myfile.php or throws the new MyException * as expected. No problem right? The same should be true of class_exists(), * right? So then... */ $classname = 'NonExistentClass'; try { if( ! class_exists( $classname ) ) { throw new MyException('Double Doh!'); } $var = new $classname(); } catch( MyException $e ) { echo $e->getMessage(); } /** * Should throw a new instance of MyException. But instead I get an * uncaught LogicException blah blah blah for the default Exception * class AND MyException. I only catch MyException so we've got on * uncaught resulting in the dreaded LogicException error. */ ?>
Recommended tutorial: "PHP Tutorial"
The above is the detailed content of What is the method to detect whether a class exists in PHP?. For more information, please follow other related articles on the PHP Chinese website!