获取可能存在的类时发生php异常

获取可能存在的类时发生php异常,php,class,exception,Php,Class,Exception,我尝试创建一个函数来加载数组中的类。但也可能是类不存在的情况,在这种情况下,我希望得到一个错误字符串,该字符串位于该位置,如果它存在,则该类必须位于该位置。 所以我想我要用try,catch来捕捉错误,但我还是得到了tge错误 try { $content = $extension::content(); } catch (Exception $e) { $content = '[undefined extension:'.$extension.']';

我尝试创建一个函数来加载数组中的类。但也可能是类不存在的情况,在这种情况下,我希望得到一个错误字符串,该字符串位于该位置,如果它存在,则该类必须位于该位置。 所以我想我要用try,catch来捕捉错误,但我还是得到了tge错误

try {
        $content = $extension::content();
    } catch (Exception $e) {
        $content = '[undefined extension:'.$extension.']';
    }
谁能帮我

谢谢

尝试使用class\u现有文档

e、 g


由于PHP5,您可以自动加载类。只要您尝试加载一个PHP不知道的类,它就会运行您的自定义函数,然后该函数将能够定位该类或抛出一个不存在的异常

请在此处阅读:

在PHP中,默认情况下错误并不例外,无法捕获。但是,当发生错误时,可以使用set_exception_处理程序抛出异常。遗憾的是,此方法无法处理致命错误


要检查类是否存在,可以调用class_exists。

如果特定的自动加载函数无法加载该类,则引发异常是一件坏事。除非您注意多个自动加载函数的执行顺序并确保最后调用您的函数,否则一般情况下,每个函数都必须检查是否可以加载该类,如果不能,则将此任务传递给下一个函数。简单地调用类_exists是更好的解决方案。
<?php
 if( class_exists( $extension ) )
 {
    $content = $extension::content();
 }else{

 $content = '[undefined extension:'.$extension.']';
 }
if ( class_exists($extension) && property_exists($extension, 'content') ) {
    $content = $extension::content();
}else{
    $content = '[undefined extension:'.$extension.']';
}