-1

我尝试创建一个函数来加载数组中的类。但可能是类不存在的情况,在这种情况下,我想获得一个错误字符串,该字符串将放置在该位置,如果它存在,则该类必须在该位置。所以我想我要使用 try,catch 来捕获错误,但我发现 tge 错误。

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

谁能帮帮我

谢谢

4

4 回答 4

2

尝试在此处class_exists()使用文档

例如

<?php
 if( class_exists( $extension ) )
 {
    $content = $extension::content();
 }else{

 $content = '[undefined extension:'.$extension.']';
 }
于 2013-05-16T19:16:14.730 回答
1
if ( class_exists($extension) && property_exists($extension, 'content') ) {
    $content = $extension::content();
}else{
    $content = '[undefined extension:'.$extension.']';
}
于 2013-05-16T19:16:38.420 回答
1

从 PHP5 开始,您可以自动加载类。一旦您尝试加载 PHP 不知道的类,它将运行您的自定义函数,然后该函数将能够定位该类或抛出其不存在的异常。

在这里阅读:http: //php.net/manual/en/language.oop5.autoload.php

于 2013-05-16T19:16:43.657 回答
0

在 PHP 中,默认情况下错误不是异常并且无法被捕获。但是,您可以使用 set_exception_handler 在发生错误时抛出异常。遗憾的是,这种方法无法处理致命错误。

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

于 2013-05-16T19:20:28.870 回答